예제 #1
0
 def test_non_string_username_object_fails(self):
     with self.assertRaises(TypeError) as error:
         not_a_string = object()
         requests_chef.ChefAuth(not_a_string, TEST_PEM)
     expected_message = ("'user_id' must be a 'str' "
                         "object, not {0!r}".format(not_a_string))
     self.assertEqual(expected_message, str(error.exception))
예제 #2
0
 def test_from_string(self):
     serialized_key = self.private_key.private_bytes(
         encoding=serialization.Encoding.PEM,
         format=serialization.PrivateFormat.PKCS8,
         encryption_algorithm=serialization.NoEncryption())
     handler = requests_chef.ChefAuth(self.user, serialized_key)
     request = handler(self.request)
     self.assert_xops_headers(request)
예제 #3
0
 def test_from_requests_chef_rsakey_from_path(self):
     serialized_key = self.private_key.private_bytes(
         encoding=serialization.Encoding.PEM,
         format=serialization.PrivateFormat.PKCS8,
         encryption_algorithm=serialization.NoEncryption())
     sfx = 'requests-chef-tests.pem'
     with tempfile.NamedTemporaryFile(suffix=sfx, mode='wb') as pem:
         pem.write(serialized_key)
         pem.flush()
         rsakey = requests_chef.RSAKey.load_pem(pem.name)
     handler = requests_chef.ChefAuth(self.user, rsakey)
     request = handler(self.request)
     self.assert_xops_headers(request)
예제 #4
0
 def authenticate(self, user_id, private_key):
     auth = requests_chef.ChefAuth(user_id, private_key)
     self.session.auth = auth
     self.user_id = user_id
     return auth
예제 #5
0
 def test_bogus_keyvalue_fails(self):
     with self.assertRaises(ValueError) as error:
         requests_chef.ChefAuth('user', 'not-a-key-or-path-to-one')
     expected_message = 'Could not unserialize key data.'
     self.assertEqual(expected_message, six.text_type(error.exception))
예제 #6
0
 def test_missing_values_fail(self):
     with self.assertRaises(ValueError):
         requests_chef.ChefAuth(None, None)
예제 #7
0
 def test_missing_pem_fails(self):
     with self.assertRaises(ValueError):
         requests_chef.ChefAuth('.', None)
예제 #8
0
 def test_missing_username_fails(self):
     with self.assertRaises(ValueError):
         requests_chef.ChefAuth(None, '.')
예제 #9
0
 def test_from_requests_chef_rsakey_direct(self):
     rsakey = requests_chef.RSAKey(self.private_key)
     handler = requests_chef.ChefAuth(self.user, rsakey)
     request = handler(self.request)
     self.assert_xops_headers(request)
예제 #10
0
 def test_from_cryptography_rsaprivatekey(self):
     handler = requests_chef.ChefAuth(self.user, self.private_key)
     request = handler(self.request)
     self.assert_xops_headers(request)
예제 #11
0
 def test_repr(self):
     handler = requests_chef.ChefAuth(self.user, self.private_key)
     expected = 'ChefAuth(patsy)'
     self.assertEqual(expected, repr(handler))
예제 #12
0
파일: client.py 프로젝트: cniemira/okchef
 def authenticate(self, user_id, private_key):
     """Authenticate this session with the chef server."""
     auth = requests_chef.ChefAuth(user_id, private_key)
     self.session.auth = auth
     self.user_id = user_id
     return auth