This commit is contained in:
2024-01-18 20:28:55 +00:00
parent 19c8d10645
commit 6eca8fcc46
12 changed files with 269 additions and 125 deletions

View File

@@ -1,14 +1,15 @@
# -*- coding: utf-8 -*-
# -*- coding: utf-8 -*-x
# type: ignore
from __future__ import annotations
from keep_it_secret import secrets
from keep_it_secret.fields import LiteralField
from tests.fixtures import TestingSecrets
class ParentSecrets(secrets.Secrets):
pass
class NestedSecrets(secrets.Secrets):
spameggs: str = LiteralField.new('spameggs')
def test_init():
@@ -21,15 +22,12 @@ def test_init():
assert result.__secrets_data__ == {'spam': 'spam', 'eggs': 'eggs'}
def test_init_with_parent():
# Given
parent_secrets = ParentSecrets()
def test_init_with_parent(testing_secrets: TestingSecrets):
# When
result = TestingSecrets(parent=parent_secrets)
result = NestedSecrets(parent=testing_secrets)
# Then
assert result.__secrets_parent__ is parent_secrets
assert result.__secrets_parent__ is testing_secrets
def test_field_property(testing_secrets: TestingSecrets):
@@ -38,3 +36,58 @@ def test_field_property(testing_secrets: TestingSecrets):
# Then
assert result == testing_secrets.__secrets_data__['spam']
def test_resolve_dependency_from_self():
# Given
secrets = NestedSecrets()
# When
result = secrets.resolve_dependency('spameggs')
# Then
assert result == secrets.spameggs
def test_resolve_dependency_from_parent(testing_secrets: TestingSecrets):
# Given
secrets = NestedSecrets(parent=testing_secrets)
# When
result = secrets.resolve_dependency('spam')
# Then
assert result == testing_secrets.spam
def test_resolve_dependency_unresolved_from_self():
# Given
secrets = NestedSecrets()
# When
result = secrets.resolve_dependency('thisisntright')
# Then
assert result is secrets.UNRESOLVED_DEPENDENCY
def test_resolve_dependency_unresolved_with_parent(testing_secrets: TestingSecrets):
# Given
secrets = NestedSecrets(parent=testing_secrets)
# When
result = secrets.resolve_dependency('thisisntright')
# Then
assert result is secrets.UNRESOLVED_DEPENDENCY
def test_resolve_dependency_unresolved_dont_include_parents(testing_secrets: TestingSecrets):
# Given
secrets = NestedSecrets(parent=testing_secrets)
# When
result = secrets.resolve_dependency('spam', include_parents=False)
# Then
assert result is secrets.UNRESOLVED_DEPENDENCY