This repository has been archived by the owner on Apr 5, 2019. It is now read-only.
/
test_api.py
67 lines (49 loc) · 1.83 KB
/
test_api.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
try:
import json
except ImportError:
import simplejson as json
import oauth2 as oauth
import urllib
import unittest
import requests
from google.appengine.ext import testbed
from main import application
from models import Service
from webtest import TestApp
class HTTPTest(unittest.TestCase):
"""Easily test HTTP requests against a URL"""
base = "http://localhost"
def request(self, method, url, **kwargs):
url = self.base + url
return requests.request(method, url, **kwargs)
def get(self, url, **kwargs):
return self.request("GET", url, **kwargs)
def post(self, url, **kwargs):
return self.request("POST", url, **kwargs)
def put(self, url, **kwargs):
return self.request("PUT", url, **kwargs)
def delete(self, url, **kwargs):
return self.request("DELETE", url, **kwargs)
def head(self, url, **kwargs):
return self.request("HEAD", url, **kwargs)
class WSGITest(HTTPTest):
"""Easily test HTTP requests against a URL"""
def request(self, method, url, **kwargs):
return self.app.request(method, url, **kwargs)
class StashboardTest(WSGITest):
def setUp(self):
self.app = TestApp(application())
self.testbed = testbed.Testbed()
self.testbed.setup_env(auth_domain="testbed")
self.authenticate("123", "a@b.c", admin=True)
self.testbed.activate()
self.testbed.init_memcache_stub()
self.testbed.init_taskqueue_stub()
self.testbed.init_datastore_v3_stub()
self.testbed.init_user_stub()
def authenticate(self, name, email, admin=False):
admin_value = "1" if admin else "0"
self.testbed.setup_env(user_is_admin=admin_value, user_email=email,
user_id=name, overwrite=True)
def tearDown(self):
self.testbed.deactivate()