Skip to content

Commit

Permalink
[py]: Tweak unit tests for VA, allow values to be passed when instant…
Browse files Browse the repository at this point in the history
…iating a `VirtualAuthenticator` instance
  • Loading branch information
symonk committed Dec 10, 2022
1 parent 3bc3385 commit 4abc122
Show file tree
Hide file tree
Showing 2 changed files with 31 additions and 65 deletions.
22 changes: 15 additions & 7 deletions py/selenium/webdriver/common/virtual_authenticator.py
Original file line number Diff line number Diff line change
Expand Up @@ -45,18 +45,26 @@ class VirtualAuthenticatorOptions:
Protocol = Protocol
Transport = Transport

def __init__(self) -> None:
def __init__(
self,
protocol: str = Protocol.CTAP2,
transport: str = Transport.USB,
has_resident_key: bool = False,
has_user_verification: bool = False,
is_user_consenting: bool = True,
is_user_verified: bool = False,
) -> None:
"""Constructor.
Initialize VirtualAuthenticatorOptions object.
"""

self.protocol: str = Protocol.CTAP2
self.transport: str = Transport.USB
self.has_resident_key: bool = False
self.has_user_verification: bool = False
self.is_user_consenting: bool = True
self.is_user_verified: bool = False
self.protocol: str = protocol
self.transport: str = transport
self.has_resident_key: bool = has_resident_key
self.has_user_verification: bool = has_user_verification
self.is_user_consenting: bool = is_user_consenting
self.is_user_verified: bool = is_user_verified

def to_dict(self) -> typing.Dict[str, typing.Union[str, bool]]:
return {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,64 +25,22 @@ def options():
return VirtualAuthenticatorOptions()


def test_set_transport(options):
options.transport = VirtualAuthenticatorOptions.Transport.USB
assert options.transport == VirtualAuthenticatorOptions.Transport.USB.value


def test_get_transport(options):
options._transport = VirtualAuthenticatorOptions.Transport.NFC
assert options.transport == VirtualAuthenticatorOptions.Transport.NFC.value


def test_set_protocol(options):
options.protocol = VirtualAuthenticatorOptions.Protocol.U2F
assert options.protocol == VirtualAuthenticatorOptions.Protocol.U2F.value


def test_get_protocol(options):
options._protocol = VirtualAuthenticatorOptions.Protocol.CTAP2
assert options.protocol == VirtualAuthenticatorOptions.Protocol.CTAP2.value


def test_set_has_resident_key(options):
options.has_resident_key = True
assert options.has_resident_key is True


def test_get_has_resident_key(options):
options._has_resident_key = False
assert options.has_resident_key is False


def test_set_has_user_verification(options):
options.has_user_verification = True
assert options.has_user_verification is True


def test_get_has_user_verification(options):
options._has_user_verification = False
assert options.has_user_verification is False


def test_set_is_user_consenting(options):
options.is_user_consenting = True
assert options.is_user_consenting is True


def test_get_is_user_consenting(options):
options._is_user_consenting = False
assert options.is_user_consenting is False


def test_set_is_user_verified(options):
options.is_user_verified = True
assert options.is_user_verified is True


def test_get_is_user_verified(options):
options._is_user_verified = False
assert options.is_user_verified is False
def test_bespoke_options_for_virtual_authenticator():
va = VirtualAuthenticatorOptions(
protocol="ctap1/u2f",
transport="ble",
has_resident_key=True,
has_user_verification=True,
is_user_consenting=False,
is_user_verified=True
).to_dict() == {
"protocol": "ctap1/u2f",
"transport": "ble",
"hasResidentKey": True,
"hasUserVerification": True,
"isUserConsenting": False,
"isUserVerified": True
}


def test_to_dict_with_defaults(options):
Expand Down

0 comments on commit 4abc122

Please sign in to comment.