Django-test-client die http-basic-auth für die post-Anforderung

jeder. Ich bin versucht, zu schreiben tests für RESTful API implementiert, die mit django-tastypie mit http-basic-auth. So, ich habe den folgenden code:

def http_auth(username, password):
    credentials = base64.encodestring('%s:%s' % (username, password)).strip()
    auth_string = 'Basic %s' % credentials
    return auth_string

class FileApiTest(TestCase):

    fixtures = ['test/fixtures/test_users.json']

    def setUp(self):
        self.extra = {
            'HTTP_AUTHORIZATION': http_auth('testuser', 'qwerty')
        }

    def test_folder_resource(self):
        response = self.client.get('/api/1.0/folder/', **self.extra)
        self.assertEqual(response.status_code, 200)

    def test_folder_resource_post(self):
        response = self.client.post('/api/1.0/folder/', **self.extra)
        self.assertNotEqual(response.status_code, 401)

GET-request ist gut gemacht, die Rückkehr status-code 200. Aber POST-request gibt immer 401. Ich bin sicher, ich mache etwas falsch. Irgendwelche Ratschläge?

  • Vielleicht überprüfen Sie Ihre Meta: Autorisierung auf Ihre Ressource? Was bedeutet es zu sagen?
  • authorization = DjangoAuthorization()
  • aw, Mist, ich meinte "Authentifizierung", was Sie testen hier. Der Unterschied ist die Authentifizierung == "Wer bist du", Autorisierung == "Können Sie dies tun?"
  • authentication = BasicAuthentication(realm=settings.SOCIAL_API_REALM)
InformationsquelleAutor dmrz | 2011-05-20
Schreibe einen Kommentar