コード例 #1
0
ファイル: test_secure.py プロジェクト: ameily/cincoconfig
 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'
         })
コード例 #2
0
ファイル: test_secure.py プロジェクト: ameily/cincoconfig
    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})
コード例 #3
0
ファイル: test_secure.py プロジェクト: ameily/cincoconfig
    def test_to_python_dict_valid(self):
        cfg = StubConfig()
        field = SecureField(name='asdf')

        assert field.to_python(cfg, {
            'method': 'test',
            'ciphertext': 'aGVsbG8='
        }) == 'plaintext'
コード例 #4
0
ファイル: test_secure.py プロジェクト: ameily/cincoconfig
 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)
コード例 #5
0
ファイル: test_secure.py プロジェクト: ameily/cincoconfig
    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'))
コード例 #6
0
ファイル: test_secure.py プロジェクト: ameily/cincoconfig
 def test_to_python_str(self):
     field = SecureField()
     assert field.to_python(StubConfig(), 'hello') == 'hello'
コード例 #7
0
ファイル: test_secure.py プロジェクト: ameily/cincoconfig
 def test_to_python_empty_string(self):
     field = SecureField()
     assert field.to_python(None, "") == ""
コード例 #8
0
ファイル: test_secure.py プロジェクト: ameily/cincoconfig
 def test_to_python_none(self):
     field = SecureField()
     assert field.to_python(StubConfig(), None) is None
コード例 #9
0
ファイル: test_secure.py プロジェクト: ameily/cincoconfig
 def test_to_basic_empty_string(self):
     field = SecureField()
     assert field.to_basic(None, "") is None
コード例 #10
0
 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': ''}
コード例 #11
0
ファイル: test_secure.py プロジェクト: ameily/cincoconfig
 def test_to_python_invalid_type(self):
     field = SecureField()
     with pytest.raises(ValueError):
         field.to_python(StubConfig(), 100)
コード例 #12
0
 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'})
コード例 #13
0
 def test_to_python_str(self):
     field = SecureField()
     assert field.to_python(None, 'hello') == 'hello'
コード例 #14
0
 def test_to_python_none(self):
     field = SecureField()
     assert field.to_python(None, None) is None
コード例 #15
0
 def test_to_basic_none(self):
     field = SecureField()
     assert field.to_basic(None, None) is None
コード例 #16
0
ファイル: test_secure.py プロジェクト: ameily/cincoconfig
 def test_to_basic_none(self):
     field = SecureField()
     assert field.to_basic(StubConfig(), None) is None
コード例 #17
0
 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}