Files
api2/tests/resources/test_designers.py
T

59 lines
1.8 KiB
Python

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.session.remove()
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("data")))
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 = {"name": "Only name"}
response = self.client.post(
"/designers/", data=json.dumps(data), content_type="application/json"
)
self.assert400(response)