def test_create__returns_type_dict(self) -> None:
        """Check that a dictionary is returned from the AddressFactory create method."""
        address = AddressFactory.create()

        assert type(address) == dict

        self.api.delete_address(address=address, rider_address=False)
    def test_create__requires_no_params(self) -> None:
        """Check that the AddressFactory create method requires no params."""
        address = AddressFactory.create()

        assert address is not None

        self.api.delete_address(address=address, rider_address=False)
    def test_build__override_default_values(self) -> None:
        """Check that AddressFactory values may be overridden post-build."""
        address: dict = AddressFactory.build()
        default_address_name: str = address['name']

        address['name'] = 'Test Address'

        assert address['name'] != default_address_name
    def test_create_address__returns_type_dict(self) -> None:
        """Check that the create_address method returns a dictionary."""
        address_data: dict = AddressFactory.build()
        address: dict = self.addresses_api.create_address(
            address_data=address_data,
            url=address_data['url'],
        )

        assert type(address) is dict

        self.addresses_api.delete_address(address=address, rider_address=False)
    def test_create_address__remove_url_key(self) -> None:
        """Check that the create_address method removes the 'url' key."""
        address_data: dict = AddressFactory.build()
        url: str = API.build_api_url(path=f'/ondemand/{AGENCY}/addresses')

        address: dict = self.addresses_api.create_address(
            address_data=address_data, url=url)

        assert 'url' not in address

        self.addresses_api.delete_address(address=address, rider_address=False)
    def test_create_address__success(self) -> None:
        """Check that an Address may be created."""
        address_data: dict = AddressFactory.build()
        url: str = API.build_api_url(path=f'/ondemand/{AGENCY}/addresses')

        try:
            address: dict = self.addresses_api.create_address(
                address_data=address_data, url=url)
            self.addresses_api.delete_address(address=address,
                                              rider_address=False)
        except HTTPError:
            pytest.fail('Test failed due to HTTPError.', pytrace=True)
    def test_create__params__rider_address(self) -> None:
        """Check that a rider address (OnDemand Web) can be built from the AddressFactory."""
        address: dict = AddressFactory.create(rider_address=True)

        self.api.delete_address(address=address, rider_address=True)
    def test_build__subsequent_calls_return_new_address(self) -> None:
        """Check that a new Address is returned from the AddressFactory build method."""
        address_one: dict = AddressFactory.build()
        address_two: dict = AddressFactory.build()

        assert address_one != address_two
    def test_build__returns_type_dict(self) -> None:
        """Check that a dictionary is returned from the AddressFactory build method."""
        address = AddressFactory.build()

        assert type(address) == dict
    def test_build__params__rider_address(self) -> None:
        """Check that a rider address (OnDemand Web) can be built from the AddressFactory."""
        address: dict = AddressFactory.build(rider_address=True)

        assert '/me/rider/addresses' in address['url']
    def test_build__requires_no_params(self) -> None:
        """Check that the AddressFactory build method does not require params."""
        address: dict = AddressFactory.build()

        assert address is not None
    def rider_address(self) -> Generator[dict, None, None]:
        """Instantiate an OnDemand Web Address for AddressesAPI method testing."""
        address: dict = AddressFactory.create(rider_address=True)

        yield address
    def address(self) -> Generator[dict, None, None]:
        """Instantiate an Address for AddressesAPI method testing."""
        address: dict = AddressFactory.create()

        yield address