the application was rewritten a bit to be more testable

This commit is contained in:
Martin
2016-06-28 18:59:20 +02:00
parent 27542b9ebb
commit 2edf0ba8b0
14 changed files with 122 additions and 54 deletions
View File
+20
View File
@@ -0,0 +1,20 @@
# coding=UTF-8
import unittest2
from api.helpers import slugify
class TestHelpers(unittest2.TestCase):
def test_slugify(self):
self.assertEqual(slugify('HELLO'), 'hello')
self.assertEqual(slugify('this is a test'), 'this_is_a_test')
self.assertEqual(slugify('___This is a test___'), 'this_is_a_test')
self.assertEqual(slugify('this-is-a-test'), 'this_is_a_test')
self.assertEqual(slugify('this_is_a__test'), 'this_is_a_test')
self.assertEqual(slugify('404'), '404')
self.assertEqual(slugify('1,000 reasons you are #1'),
'1000_reasons_you_are_1')
self.assertEqual(slugify('Nín hǎo'), 'nin_hao')
self.assertEqual(slugify('räksmörgås'), 'raksmorgas')
self.assertEqual(slugify('RÄKSMÖRGÅS'), 'raksmorgas')
+46
View File
@@ -0,0 +1,46 @@
# coding=UTF-8
import unittest2
import base64
from api import create_app
try:
import httplib
except ImportError:
# support for python 3
import http.client as httplib
class ApiTest(unittest2.TestCase):
def setUp(self):
self.app = create_app('tests.config')
self.client = self.app.test_client()
class TestHttpBasicAuth(ApiTest):
api_key = 'secret'
def _enable_basic_auth(self):
self.app.config['API_KEYS'] = [self.api_key]
def _create_auth_headers(self, username, password=''):
data = base64.b64encode(bytes(':'.join([username, password]), 'ascii')).decode('ascii')
headers = [('Authorization', 'Basic %s' % data)]
return headers
def test_missing_credentials(self):
self._enable_basic_auth()
resp = self.client.get('/')
self.assertEqual(resp.status_code, httplib.UNAUTHORIZED)
def test_correct_credentials(self):
self._enable_basic_auth()
headers = self._create_auth_headers(self.api_key)
resp = self.client.get('/', headers=headers)
self.assertEqual(resp.status_code, httplib.OK)
def test_basic_auth_disabled(self):
resp = self.client.get('/')
self.assertEqual(resp.status_code, httplib.OK)