Quellcode durchsuchen

refactor(api): make Token object available in tests

Peter Thomassen vor 5 Jahren
Ursprung
Commit
390fe88859

+ 4 - 4
api/desecapi/tests/base.py

@@ -722,7 +722,7 @@ class DesecTestCase(MockPDNSTestCase):
     def create_token(cls, user, name=''):
         token = Token.objects.create(user=user, name=name)
         token.save()
-        return token.plain
+        return token
 
     @classmethod
     def create_user(cls, **kwargs):
@@ -943,7 +943,7 @@ class DomainOwnerTestCase(DesecTestCase, PublicSuffixMockMixin):
 
     def setUp(self):
         super().setUp()
-        self.client.credentials(HTTP_AUTHORIZATION='Token ' + self.token)
+        self.client.credentials(HTTP_AUTHORIZATION='Token ' + self.token.plain)
         self.setUpMockPatch()
 
 
@@ -979,8 +979,8 @@ class DynDomainOwnerTestCase(DomainOwnerTestCase):
     def setUp(self):
         super().setUp()
         self.client_token_authorized = self.client_class()
-        self.client.set_credentials_basic_auth(self.my_domain.name.lower(), self.token)
-        self.client_token_authorized.set_credentials_token_auth(self.token)
+        self.client.set_credentials_basic_auth(self.my_domain.name.lower(), self.token.plain)
+        self.client_token_authorized.set_credentials_token_auth(self.token.plain)
 
 
 class AuthenticatedRRSetBaseTestCase(DomainOwnerTestCase):

+ 8 - 8
api/desecapi/tests/test_authentication.py

@@ -21,11 +21,11 @@ class DynUpdateAuthenticationTestCase(DynDomainOwnerTestCase):
             self.client.set_credentials_basic_auth(username, token)
             self.assertDynDNS12Status(code)
 
-        assertDynDNS12AuthenticationStatus('', self.token, HTTP_200_OK)
-        assertDynDNS12AuthenticationStatus(self.owner.get_username(), self.token, HTTP_200_OK)
-        assertDynDNS12AuthenticationStatus(self.my_domain.name, self.token, HTTP_200_OK)
-        assertDynDNS12AuthenticationStatus(' ' + self.my_domain.name, self.token, HTTP_401_UNAUTHORIZED)
-        assertDynDNS12AuthenticationStatus('wrong', self.token, HTTP_401_UNAUTHORIZED)
+        assertDynDNS12AuthenticationStatus('', self.token.plain, HTTP_200_OK)
+        assertDynDNS12AuthenticationStatus(self.owner.get_username(), self.token.plain, HTTP_200_OK)
+        assertDynDNS12AuthenticationStatus(self.my_domain.name, self.token.plain, HTTP_200_OK)
+        assertDynDNS12AuthenticationStatus(' ' + self.my_domain.name, self.token.plain, HTTP_401_UNAUTHORIZED)
+        assertDynDNS12AuthenticationStatus('wrong', self.token.plain, HTTP_401_UNAUTHORIZED)
         assertDynDNS12AuthenticationStatus('', 'wrong', HTTP_401_UNAUTHORIZED)
         assertDynDNS12AuthenticationStatus(self.user.get_username(), 'wrong', HTTP_401_UNAUTHORIZED)
 
@@ -52,6 +52,6 @@ class TokenAuthenticationTestCase(DynDomainOwnerTestCase):
         self.assertStatus(self._get_domains(), code)
 
     def test_token_case_sensitive(self):
-        self.assertAuthenticationStatus(HTTP_200_OK, self.token)
-        self.assertAuthenticationStatus(HTTP_401_UNAUTHORIZED, self.token.upper())
-        self.assertAuthenticationStatus(HTTP_401_UNAUTHORIZED, self.token.lower())
+        self.assertAuthenticationStatus(HTTP_200_OK, self.token.plain)
+        self.assertAuthenticationStatus(HTTP_401_UNAUTHORIZED, self.token.plain.upper())
+        self.assertAuthenticationStatus(HTTP_401_UNAUTHORIZED, self.token.plain.lower())

+ 5 - 5
api/desecapi/tests/test_dyndns12update.py

@@ -19,14 +19,14 @@ class DynDNS12UpdateTest(DynDomainOwnerTestCase):
                 self.assertStatus(response, status.HTTP_404_NOT_FOUND)
 
     def test_identification_by_domain_name(self):
-        self.client.set_credentials_basic_auth(self.my_domain.name + '.invalid', self.token)
+        self.client.set_credentials_basic_auth(self.my_domain.name + '.invalid', self.token.plain)
         response = self.assertDynDNS12NoUpdate(mock_remote_addr='10.5.5.6')
         self.assertStatus(response, status.HTTP_401_UNAUTHORIZED)
 
     def test_identification_by_query_params(self):
         # /update?username=foobar.dedyn.io&password=secret
         self.client.set_credentials_basic_auth(None, None)
-        response = self.assertDynDNS12Update(username=self.my_domain.name, password=self.token)
+        response = self.assertDynDNS12Update(username=self.my_domain.name, password=self.token.plain)
         self.assertStatus(response, status.HTTP_200_OK)
         self.assertEqual(response.data, 'good')
         self.assertIP(ipv4='127.0.0.1')
@@ -171,14 +171,14 @@ class SingleDomainDynDNS12UpdateTest(DynDNS12UpdateTest):
     NUM_OWNED_DOMAINS = 1
 
     def test_identification_by_token(self):
-        self.client.set_credentials_basic_auth('', self.token)
+        self.client.set_credentials_basic_auth('', self.token.plain)
         response = self.assertDynDNS12Update(self.my_domain.name, mock_remote_addr='10.5.5.6')
         self.assertStatus(response, status.HTTP_200_OK)
         self.assertEqual(response.data, 'good')
         self.assertIP(ipv4='10.5.5.6')
 
     def test_identification_by_email(self):
-        self.client.set_credentials_basic_auth(self.owner.email, self.token)
+        self.client.set_credentials_basic_auth(self.owner.email, self.token.plain)
         response = self.assertDynDNS12Update(self.my_domain.name, mock_remote_addr='10.5.5.6')
         self.assertStatus(response, status.HTTP_200_OK)
         self.assertEqual(response.data, 'good')
@@ -199,7 +199,7 @@ class MultipleDomainDynDNS12UpdateTest(DynDNS12UpdateTest):
         """
         Test if the conflict of having multiple domains, but not specifying which to update is correctly recognized.
         """
-        self.client.set_credentials_basic_auth('', self.token)
+        self.client.set_credentials_basic_auth('', self.token.plain)
         response = self.client.get(self.reverse('v1:dyndns12update'), REMOTE_ADDR='10.5.5.7')
         self.assertStatus(response, status.HTTP_409_CONFLICT)
 

+ 1 - 1
api/desecapi/tests/test_tokens.py

@@ -17,7 +17,7 @@ class TokenTestCase(DomainOwnerTestCase):
         self.assertEqual(len(response.data), 2)
         self.assertIn('id', response.data[0])
         self.assertFalse(any(field in response.data[0] for field in ['token', 'key', 'value']))
-        self.assertNotContains(response, self.token)
+        self.assertNotContains(response, self.token.plain)
 
     def test_delete_my_token(self):
         token_id = Token.objects.get(user=self.owner, name='testtoken').id