def test_is_multipart(self): req = django.test.RequestFactory().get("/", content_type="text/plain") self.assertFalse(utils.Mimer(req).is_multipart()) req = django.test.RequestFactory().post( "/", content_type="multipart/form-data") self.assertTrue(utils.Mimer(req).is_multipart())
def test_translate(self): data = {"foo": "bar"} req = django.test.RequestFactory().post( "/", json.dumps(data), content_type="application/json") mimer = utils.Mimer(req) req = mimer.translate() self.assertEqual(req.POST, {}) self.assertEqual(req.PUT, {}) self.assertEqual(req.data, data)
def test_register_unregister(self): deserializer, content_type = lambda _: None, "foo" utils.Mimer.register(deserializer, content_type) req = django.test.RequestFactory().post("/", "", content_type=content_type) mimer = utils.Mimer(req) self.assertEqual(mimer.loader_for_type(content_type), deserializer) utils.Mimer.unregister(deserializer) self.assertIsNone(mimer.loader_for_type(content_type))
def test_translate_none_deserializer(self): with mock.patch.dict( "django_declarative_apis.resources.utils.Mimer.TYPES", {None: "application_json"}, clear=True, ): req = django.test.RequestFactory().post( "/", {"foo": "bar"}, content_type="application/json") mimer = utils.Mimer(req) self.assertIsNone(mimer.translate().data)
def test_loader_for_type(self): req = django.test.RequestFactory().post( "/", json.dumps({"foo": "bar"}), content_type="application/json" ) mimer = utils.Mimer(req) self.assertEqual(mimer.loader_for_type("application/json"), json.loads)
def test_translate_invalid_data(self): req = django.test.RequestFactory().post( "/", "notjson", content_type="application/json" ) mimer = utils.Mimer(req) self.assertRaises(utils.MimerDataException, mimer.translate)