class ReuseBadgeAPITest: modules = [] @pytest.fixture(autouse=True) def setup(self, api, clean_db): # Register at least two badges Reuse.__badges__['test-1'] = 'Test 1' Reuse.__badges__['test-2'] = 'Test 2' self.factory = badge_factory(Reuse) self.user = api.login(AdminFactory()) self.reuse = ReuseFactory() def test_list(self, api): response = api.get(url_for('api.available_reuse_badges')) assert200(response) assert len(response.json) == len(Reuse.__badges__) for kind, label in Reuse.__badges__.items(): assert kind in response.json assert response.json[kind] == label def test_create(self, api): data = self.factory.as_dict() response = api.post(url_for('api.reuse_badges', reuse=self.reuse), data) assert201(response) self.reuse.reload() assert len(self.reuse.badges) == 1 def test_create_same(self, api): data = self.factory.as_dict() api.post(url_for('api.reuse_badges', reuse=self.reuse), data) response = api.post(url_for('api.reuse_badges', reuse=self.reuse), data) assert200(response) self.reuse.reload() assert len(self.reuse.badges) == 1 def test_create_2nd(self, api): # Explicitely setting the kind to avoid collisions given the # small number of choices for kinds. kinds_keys = list(Reuse.__badges__) self.reuse.add_badge(kinds_keys[0]) data = self.factory.as_dict() data['kind'] = kinds_keys[1] response = api.post(url_for('api.reuse_badges', reuse=self.reuse), data) assert201(response) self.reuse.reload() assert len(self.reuse.badges) == 2 def test_delete(self, api): badge = self.factory() self.reuse.add_badge(badge.kind) response = api.delete( url_for('api.reuse_badge', reuse=self.reuse, badge_kind=str(badge.kind))) assert204(response) self.reuse.reload() assert len(self.reuse.badges) == 0 def test_delete_404(self, api): response = api.delete( url_for('api.reuse_badge', reuse=self.reuse, badge_kind=str(self.factory().kind))) assert404(response)
class ReuseBadgeAPITest(APITestCase): @classmethod def setUpClass(cls): # Register at least two badges Reuse.__badges__['test-1'] = 'Test 1' Reuse.__badges__['test-2'] = 'Test 2' cls.factory = badge_factory(Reuse) def setUp(self): self.login(AdminFactory()) self.reuse = ReuseFactory() def test_list(self): response = self.get(url_for('api.available_reuse_badges')) self.assertStatus(response, 200) self.assertEqual(len(response.json), len(Reuse.__badges__)) for kind, label in Reuse.__badges__.items(): self.assertIn(kind, response.json) self.assertEqual(response.json[kind], label) def test_create(self): data = self.factory.as_dict() with self.api_user(): response = self.post( url_for('api.reuse_badges', reuse=self.reuse), data) self.assert201(response) self.reuse.reload() self.assertEqual(len(self.reuse.badges), 1) def test_create_same(self): data = self.factory.as_dict() with self.api_user(): self.post( url_for('api.reuse_badges', reuse=self.reuse), data) response = self.post( url_for('api.reuse_badges', reuse=self.reuse), data) self.assertStatus(response, 200) self.reuse.reload() self.assertEqual(len(self.reuse.badges), 1) def test_create_2nd(self): # Explicitely setting the kind to avoid collisions given the # small number of choices for kinds. kinds_keys = Reuse.__badges__.keys() self.reuse.add_badge(kinds_keys[0]) data = self.factory.as_dict() data['kind'] = kinds_keys[1] with self.api_user(): response = self.post( url_for('api.reuse_badges', reuse=self.reuse), data) self.assert201(response) self.reuse.reload() self.assertEqual(len(self.reuse.badges), 2) def test_delete(self): badge = self.factory() self.reuse.add_badge(badge.kind) with self.api_user(): response = self.delete( url_for('api.reuse_badge', reuse=self.reuse, badge_kind=str(badge.kind))) self.assertStatus(response, 204) self.reuse.reload() self.assertEqual(len(self.reuse.badges), 0) def test_delete_404(self): with self.api_user(): response = self.delete( url_for('api.reuse_badge', reuse=self.reuse, badge_kind=str(self.factory().kind))) self.assert404(response)
class ReuseBadgeAPITest(APITestCase): @classmethod def setUpClass(cls): # Register at least two badges Reuse.__badges__['test-1'] = 'Test 1' Reuse.__badges__['test-2'] = 'Test 2' cls.factory = badge_factory(Reuse) def setUp(self): self.login(AdminFactory()) self.reuse = ReuseFactory() def test_list(self): response = self.get(url_for('api.available_reuse_badges')) self.assertStatus(response, 200) self.assertEqual(len(response.json), len(Reuse.__badges__)) for kind, label in Reuse.__badges__.items(): self.assertIn(kind, response.json) self.assertEqual(response.json[kind], label) def test_create(self): data = self.factory.as_dict() with self.api_user(): response = self.post(url_for('api.reuse_badges', reuse=self.reuse), data) self.assert201(response) self.reuse.reload() self.assertEqual(len(self.reuse.badges), 1) def test_create_same(self): data = self.factory.as_dict() with self.api_user(): self.post(url_for('api.reuse_badges', reuse=self.reuse), data) response = self.post(url_for('api.reuse_badges', reuse=self.reuse), data) self.assertStatus(response, 200) self.reuse.reload() self.assertEqual(len(self.reuse.badges), 1) def test_create_2nd(self): # Explicitely setting the kind to avoid collisions given the # small number of choices for kinds. kinds_keys = Reuse.__badges__.keys() self.reuse.add_badge(kinds_keys[0]) data = self.factory.as_dict() data['kind'] = kinds_keys[1] with self.api_user(): response = self.post(url_for('api.reuse_badges', reuse=self.reuse), data) self.assert201(response) self.reuse.reload() self.assertEqual(len(self.reuse.badges), 2) def test_delete(self): badge = self.factory() self.reuse.add_badge(badge.kind) with self.api_user(): response = self.delete( url_for('api.reuse_badge', reuse=self.reuse, badge_kind=str(badge.kind))) self.assertStatus(response, 204) self.reuse.reload() self.assertEqual(len(self.reuse.badges), 0) def test_delete_404(self): with self.api_user(): response = self.delete( url_for('api.reuse_badge', reuse=self.reuse, badge_kind=str(self.factory().kind))) self.assert404(response)