Esempio n. 1
0
    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")
Esempio n. 2
0
 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)