def test_canonical_resource_for(self): tastypie.available_apis = {} api = Api() note_resource = NoteResource() user_resource = UserResource() api.register(note_resource) api.register(user_resource) self.assertEqual(len(api._canonicals), 2) self.assertEqual(isinstance(api.canonical_resource_for("notes"), NoteResource), True) api_2 = Api() self.assertRaises(URLReverseError, tastypie._get_canonical_resource_name, api_2, NoteRepresentation) self.assertEqual(tastypie._get_canonical_resource_name(api.api_name, NoteRepresentation), "notes") self.assertEqual(tastypie._get_canonical_resource_name(api.api_name, NoteRepresentation()), "notes") self.assertEqual( tastypie._get_canonical_resource_name(api.api_name, note_resource.detail_representation), "notes" ) self.assertEqual(tastypie._get_canonical_resource_name(api.api_name, UserRepresentation), "users") self.assertEqual(tastypie._get_canonical_resource_name(api.api_name, UserRepresentation()), "users") self.assertEqual( tastypie._get_canonical_resource_name(api.api_name, user_resource.detail_representation), "users" ) api.unregister(user_resource.resource_name) self.assertRaises(NotRegistered, api.canonical_resource_for, "users")
def get_resource_uri(self): kwargs = { 'resource_name': self.resource_name, 'obj_id': self.instance.pk } if self.api_name is not None: try: kwargs['resource_name'] = _get_canonical_resource_name(self.api_name, self) except URLReverseError: pass kwargs['api_name'] = self.api_name return reverse("api_dispatch_detail", kwargs=kwargs)