add tests for the designer resource
This commit is contained in:
@@ -0,0 +1,58 @@
|
||||
import json
|
||||
import flask_testing
|
||||
from api import create_app, db
|
||||
from api.models import Designer
|
||||
from unittest.mock import patch
|
||||
|
||||
|
||||
class TestEndpoints(flask_testing.TestCase):
|
||||
|
||||
def create_app(self):
|
||||
return create_app('tests.config')
|
||||
|
||||
def setUp(self):
|
||||
db.create_all()
|
||||
|
||||
def tearDown(self):
|
||||
db.drop_all()
|
||||
|
||||
def _add_designer(self, name, username=None, territory='SE', currency='SEK'):
|
||||
if not username:
|
||||
username = name.lower()
|
||||
designer = Designer(name, username, territory, currency)
|
||||
db.session.add(designer)
|
||||
db.session.commit()
|
||||
return designer
|
||||
|
||||
def test_list_designers(self):
|
||||
self._add_designer('designer1')
|
||||
self._add_designer('designer2')
|
||||
response = self.client.get("/designers/")
|
||||
self.assertEqual(2, len(response.json.get('designers')))
|
||||
|
||||
def test_get_designer(self):
|
||||
designer = self._add_designer('designer1')
|
||||
response = self.client.get('/designers/1')
|
||||
self.assert200(response)
|
||||
|
||||
def test_create_designer(self):
|
||||
data = {'name': 'Spider-Man', 'username': 'spiderman', 'territory': 'US', 'currency': 'USD'}
|
||||
response = self.client.post('/designers/', data=json.dumps(data), content_type='application/json')
|
||||
self.assertEqual(201, response.status_code)
|
||||
designer = response.json
|
||||
self.assertEqual('Spider-Man', designer['name'])
|
||||
self.assertEqual('spider_man', designer['path'])
|
||||
|
||||
def test_create_designer_missing_data(self):
|
||||
data = {}
|
||||
response = self.client.post('/designers/', data=json.dumps(data), content_type='application/json')
|
||||
self.assert400(response)
|
||||
|
||||
@patch('api.tasks.esales.update_designer')
|
||||
def test_update_designer(self, esales_update_designer):
|
||||
designer = self._add_designer('designer1')
|
||||
data = {'name': 'test'}
|
||||
response = self.client.put('/designers/1', data=json.dumps(data), content_type='application/json')
|
||||
self.assertTrue(esales_update_designer.called)
|
||||
self.assertEqual('test', response.json['name'])
|
||||
self.assertEqual('test', Designer.query.get(1).name)
|
||||
Reference in New Issue
Block a user