Skip to content

Commit

Permalink
Add tests for new Credential private api class
Browse files Browse the repository at this point in the history
  • Loading branch information
chrismeyersfsu committed Nov 20, 2024
1 parent 44e9b2c commit 86e3b6b
Show file tree
Hide file tree
Showing 2 changed files with 50 additions and 2 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,11 @@ class Credential:
Satisfies ManagedCredentialType inputs want(s).
"""

def __init__(self: 'Credential') -> None:
self._inputs: dict[str, GenericOptionalPrimitiveType] = {}
def __init__(
self: 'Credential',
inputs: dict[str, GenericOptionalPrimitiveType] | None = None,
) -> None:
self._inputs: dict[str, GenericOptionalPrimitiveType] = inputs or {}

def get_input(
self: 'Credential',
Expand Down
45 changes: 45 additions & 0 deletions tests/_temporary_private_credential_api_test.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
"""Tests for the temporarily hosted private helpers."""

import pytest

from awx_plugins.interfaces._temporary_private_credential_api import (
Credential,
GenericOptionalPrimitiveType,
)


def test_credential_instantiation() -> None:
"""Check that credential type can be instantiated."""
assert Credential()


@pytest.mark.parametrize(
('inputs', 'key', 'expected'),
(
({'foo': 'bar'}, 'foo', 'bar'),
({'foo1': 'bar1'}, 'baz', None),
),
)
def test_credential_get_input(
inputs: dict[str, GenericOptionalPrimitiveType],
key: str,
expected: str,
) -> None:
"""Check that get_input operates on the dict we provided."""
assert Credential(inputs=inputs).get_input(key) == expected


@pytest.mark.parametrize(
('inputs', 'key', 'expected'),
(
({'foo2': 'bar2'}, 'foo2', True),
({'foo3': 'bar3'}, 'baz', False),
),
)
def test_credential_has_input(
inputs: dict[str, GenericOptionalPrimitiveType],
key: str,
expected: bool,
) -> None:
"""Check that has_input behaves like dict in operator."""
assert Credential(inputs=inputs).has_input(key) == expected

0 comments on commit 86e3b6b

Please sign in to comment.