def test_list_options_no_staff(self): OptionFactory.create_batch(size=10) options = OptionFactory.create_batch(size=3, is_public=True) admin = UserFactory() self.client.force_authenticate(admin) response = self.client.get("/api/options/", format="json") self.assertEqual(response.status_code, status.HTTP_200_OK) data = response.json() self.assertEqual(len(options), len(data))
def test_to_dict(self): o = OptionFactory() d = o.to_dict() self.assertEqual( sorted(d.keys()), sorted(["cost", "days", "order_before"]) ) self.assertEqual(d["cost"], o.cost) self.assertEqual(d["days"], o.days) self.assertEqual(d["order_before"], o.order_before)
def test_can_update_options_staff(self): OptionFactory.create_batch(size=10) options = OptionFactory.create_batch(size=3, is_public=True) admin = UserFactory(is_staff=True) self.client.force_authenticate(admin) data = {"value": "dummy"} response = self.client.patch(f"/api/options/{options[0].pk}/", data=data, format="json") self.assertEqual(response.status_code, status.HTTP_200_OK)
def test_from_xml(self): o = OptionFactory() el = o.to_xml() parsed_o = Option.from_xml(el) self.assertEqual(o.to_dict(), parsed_o.to_dict())
def test_to_xml(self): o = OptionFactory(order_before=None) el = o.to_xml() expected_el = ET.Element("option", {"cost": o.cost, "days": o.days}) self.assertElementsEquals(el, expected_el)
def test_public(self): options = OptionFactory.create_batch(size=5, is_public=True) OptionFactory.create_batch(size=3, is_public=False) self.assertEqual(len(options), Option.objects.public().count())
def test_float_conversion_options(self): name = "string_option" OptionFactory(name=name, value="42.5", type=FLOAT) value = Option.objects.get_value(name) self.assertIsInstance(value, float) self.assertAlmostEqual(42.5, value)
def test_str_conversion_options(self): name = "string_option" OptionFactory(name=name, value="42") value = Option.objects.get_value(name) self.assertIsInstance(value, str) self.assertEqual("42", value)
def test_int_conversion_options(self): name = "int_option" OptionFactory(name=name, value="42", type=INT) value = Option.objects.get_value(name) self.assertIsInstance(value, int) self.assertEqual(42, value)