Esempio n. 1
0
 def test_set_default_str(self, create_mock):
     create_mock.return_value = 'hello'
     field = ChallengeField('md5', default='default', key='test')
     cfg = BaseConfig(BaseSchema())
     field.__setdefault__(cfg)
     create_mock.assert_called_with('default', hashlib.md5)
     assert cfg._data['test'] == 'hello'
Esempio n. 2
0
 def test_to_basic(self):
     field = ChallengeField('md5')
     assert field.to_basic(
         MockConfig(), DigestValue(b'salt', b'digest', hashlib.md5)) == {
             'salt': base64.b64encode(b'salt').decode(),
             'digest': base64.b64encode(b'digest').decode(),
         }
Esempio n. 3
0
 def test_to_python_invalid_salt(self):
     field = ChallengeField('md5')
     with pytest.raises(ValueError):
         field.to_python(MockConfig(), {
             'salt': '==Zaa',
             'digest': base64.b64encode(b'digest').decode()
         })
Esempio n. 4
0
 def test_to_python_invalid_digest(self):
     field = ChallengeField('md5')
     with pytest.raises(ValueError):
         field.to_python(None, {
             'salt': base64.b64encode(b'salt').decode(),
             'digest': '==Za'
         })
Esempio n. 5
0
 def test_to_python_dict(self):
     field = ChallengeField('md5')
     salt = base64.b64encode(b'salt').decode()
     digest = base64.b64encode(b'digest').decode()
     val = field.to_python(MockConfig(), {'salt': salt, 'digest': digest})
     assert val.salt == b'salt'
     assert val.digest == b'digest'
     assert val.algorithm is hashlib.md5
Esempio n. 6
0
 def test_validate_tuple(self):
     val = DigestValue(b'salt', b'digest', hashlib.md5)
     field = ChallengeField('md5')
     assert field._validate(None, val) is val
Esempio n. 7
0
 def test_validate_str(self):
     field = ChallengeField('md5')
     val = field._validate(None, b'digest')
     assert val.digest == hashlib.md5(val.salt + b'digest').digest()
Esempio n. 8
0
 def test_invalid_algorithm(self):
     with pytest.raises(TypeError):
         ChallengeField('asdf')
Esempio n. 9
0
 def test_valid_default(self):
     val = ChallengeField('md5', default=DigestValue.create('digest', hashlib.md5))
Esempio n. 10
0
 def test_to_python_none(self):
     field = ChallengeField('md5', key='test')
     assert field.to_python(None, None) is None
Esempio n. 11
0
 def test_set_default_none(self):
     cfg = BaseConfig(BaseSchema())
     field = ChallengeField('md5', key='test')
     field.__setdefault__(cfg)
     assert cfg._data['test'] is None
Esempio n. 12
0
 def test_set_default_error(self):
     field = ChallengeField('md5', default=100)
     with pytest.raises(TypeError):
         field.__setdefault__({})
Esempio n. 13
0
 def test_to_basic_none(self):
     field = ChallengeField('md5')
     assert field.to_basic(MockConfig(), None) is None
Esempio n. 14
0
 def test_validate_error(self):
     field = ChallengeField('md5', name='asdf')
     with pytest.raises(TypeError):
         field._validate(None, 100)
Esempio n. 15
0
 def test_to_python_error(self):
     field = ChallengeField('md5')
     with pytest.raises(ValueError):
         field.to_python(None, 100)
Esempio n. 16
0
 def test_to_python_str(self):
     field = ChallengeField('md5')
     field._hash = MagicMock()
     field.to_python(None, 'message')
     field._hash.assert_called_with('message')
Esempio n. 17
0
 def test_to_basic_none(self):
     field = ChallengeField('md5')
     assert field.to_basic(None, None) is None
Esempio n. 18
0
 def test_validate_error(self):
     field = ChallengeField('md5', name='asdf')
     with pytest.raises(ValueError):
         field._validate(MockConfig(), 100)
Esempio n. 19
0
 def test_hash(self, create_mock):
     field = ChallengeField('md5')
     field._hash('message', b'salt')
     create_mock.assert_called_with('message', hashlib.md5, salt=b'salt')
Esempio n. 20
0
 def test_set_default_tuple(self):
     sdt = DigestValue.create('hello', hashlib.md5)
     field = ChallengeField('md5', key='test', default=sdt)
     cfg = BaseConfig(BaseSchema())
     field.__setdefault__(cfg)
     assert cfg._data['test'] is sdt