def test_to_python_dict_invalid_ciphertext_base64(self): field = SecureField(name='asdf') with pytest.raises(ValueError): field.to_python(StubConfig(), { 'method': 'xor', 'ciphertext': 'hello' })
def test_to_python_dict_invalid_ciphertext_int(self): cfg = StubConfig() field = SecureField(name='asdf') cfg._keyfile.decrypt.side_effect = EncryptionError() cfg._keyfile.__exit__.return_value = False with pytest.raises(ValueError): field.to_python(cfg, {'method': 'test', 'ciphertext': 10})
def test_to_python_dict_valid(self): cfg = StubConfig() field = SecureField(name='asdf') assert field.to_python(cfg, { 'method': 'test', 'ciphertext': 'aGVsbG8=' }) == 'plaintext'
def test_to_basic(self): cfg = StubConfig() field = SecureField(method='test') assert field.to_basic(cfg, 'hello') == { 'method': 'test', 'ciphertext': base64.b64encode(b'ciphertext').decode() } cfg._keyfile.__enter__.assert_called_once_with() cfg._keyfile.encrypt.assert_called_once_with('hello', method='test') cfg._keyfile.__exit__.assert_called_once_with(None, None, None)
def test_to_python_dict_invalid_ciphertext(self): cfg = StubConfig() field = SecureField(name='asdf') cfg._keyfile.decrypt.side_effect = EncryptionError() cfg._keyfile.__exit__.return_value = False with pytest.raises(ValueError): field.to_python(cfg, {'method': 'test', 'ciphertext': 'aGVsbG8='}) cfg._keyfile.decrypt.assert_called_once_with( SecureValue('test', b'hello'))
def test_to_python_str(self): field = SecureField() assert field.to_python(StubConfig(), 'hello') == 'hello'
def test_to_python_empty_string(self): field = SecureField() assert field.to_python(None, "") == ""
def test_to_python_none(self): field = SecureField() assert field.to_python(StubConfig(), None) is None
def test_to_basic_empty_string(self): field = SecureField() assert field.to_basic(None, "") is None
def test_to_tree_sensitive_mask_empty(self): schema = Schema() schema.v = SecureField(method='xor', default='asdf') config = schema() assert config.to_tree(sensitive_mask='') == {'v': ''}
def test_to_python_invalid_type(self): field = SecureField() with pytest.raises(ValueError): field.to_python(StubConfig(), 100)
def test_to_python_dict_invalid_method(self): field = SecureField(name='asdf') with pytest.raises(ValueError): field.to_python(None, {'method': None, 'ciphertext': b'hello'})
def test_to_python_str(self): field = SecureField() assert field.to_python(None, 'hello') == 'hello'
def test_to_python_none(self): field = SecureField() assert field.to_python(None, None) is None
def test_to_basic_none(self): field = SecureField() assert field.to_basic(None, None) is None
def test_to_basic_none(self): field = SecureField() assert field.to_basic(StubConfig(), None) is None
def test_to_tree_empty_mask_secure(self): schema = Schema() schema.v = SecureField(method='xor', default=None) config = schema() assert config.to_tree(sensitive_mask='*') == {'v': None}