Hei all,
But if I add a second method as show in the code below, the newly added test_audio_list() will pass, but the previously passing test_audio_retrieve() will fail with a 404.
I'm going slightly crackers trying to find out what's going run, but I am completely out of ideas. Any light anyone can shed on this is much appreciated.
-- I have an issue with a test class (APITestCase) where a function can pass the test if it is the only function within the class, or fail, if it is one of two or more functions.
I have put this question on Stack Overflow where it is available with nicer formatting.
If I run the following, the test will succeed.
class AudioTests(APITestCase): # setup a test user and a factory
# factory = APIRequestFactory()
test_user = None
@classmethod
def setUpTestData(cls):
importer() # imports data into the database
cls.test_user = User(username='jim', password='monkey123', email='jim@jim.com')
cls.test_user.save()
def test_audio_retrieve(self):
"""
Check that audio returns a 200 OK
"""
factory = APIRequestFactory()
view = AudioViewSet.as_view(actions={'get': 'retrieve'})
# Make an authenticated request to the view...
request = factory.get('/api/v1/audio/')
# force refresh of user
self.test_user.refresh_from_db()
user = User.objects.get(username='jim')
force_authenticate(request, user=user)
response = view(request, pk="2")
self.assertContains(response, 'audio')
self.assertEqual(response.status_code, status.HTTP_200_OK)
class AudioTests(APITestCase): # setup a test user and a factory # factory = APIRequestFactory() test_user = None
@classmethod def setUpTestData(cls): importer() # imports data into the database cls.test_user = User(username='jim', password='monkey123', email='jim@jim.com') cls.test_user.save()
def test_audio_list(self): """ Check that audo returns a 200 OK """ factory = APIRequestFactory() view = AudioViewSet.as_view(actions={'get': 'list'})
# Make an authenticated request to the view... request = factory.get('/api/v1/audio/')
self.test_user.refresh_from_db() force_authenticate(request, user=self.test_user) response = view(request, pk="1")
self.assertContains(response, 'audio/c1ha') self.assertEqual(response.status_code, status.HTTP_200_OK)
def test_audio_retrieve(self): """ Check that audio returns a 200 OK """ factory = APIRequestFactory() view = AudioViewSet.as_view(actions={'get': 'retrieve'})
# Make an authenticated request to the view... request = factory.get('/api/v1/audio/')
# force refresh of user self.test_user.refresh_from_db() user = User.objects.get(username='jim') force_authenticate(request, user=user) response = view(request, pk="2")
self.assertContains(response, 'audio') self.assertEqual(response.status_code, status.HTTP_200_OK)I'm going slightly crackers trying to find out what's going run, but I am completely out of ideas. Any light anyone can shed on this is much appreciated.
Cheers,
Conor
You received this message because you are subscribed to the Google Groups "Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to django-users+unsubscribe@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/django-users/e3a91932-11a2-482d-a7ca-8bbaf460bb79%40googlegroups.com.
No comments:
Post a Comment