def test_dsn_validator_with_invalid_scheme(): valid_dsn_list = [ "ftp://[email protected]/33", "amqp://[email protected]/33" ] # Should raise value error as only http/https schemes are allowed for dsn in valid_dsn_list: with pytest.raises(ValueError) as exc: utils.DSN(dsn) assert str(exc.value) == utils.DSN.ERROR_MESSAGE
def test_dsn_validator_with_valid_dsn(): valid_dsn_list = [ "http://[email protected]/33", "http://[email protected]/33", "https://[email protected]/33", "https://[email protected]:80/33", "https://[email protected]/33/" ] # No exceptions should be raised as all dsns are valid for dsn_input_string in valid_dsn_list: dsn = utils.DSN(dsn_input_string) assert str(dsn) in dsn_input_string
def test_dsn_validator_with_invalid_repository_id(): invalid_dsn_list = [ "https://[email protected]/33a", "https://[email protected]/33/foo/bar" "https://[email protected]/" ] # Should raise value error as provided repository_ids are not valid for dsn in invalid_dsn_list: with pytest.raises(ValueError) as exc: utils.DSN(dsn) assert str(exc.value) == utils.DSN.ERROR_MESSAGE
def test_dsn_validator_with_invalid_hostname(): invalid_dsn_list = [ "https://43f62c942790426c8b41220aade4a0d8@do#main.com/33", "https://[email protected]/33" "https://[email protected]:foo/33" ] # Should raise value error as provided hostnames are not valid for dsn in invalid_dsn_list: with pytest.raises(ValueError) as exc: utils.DSN(dsn) assert str(exc.value) == utils.DSN.ERROR_MESSAGE
def test_dsn_validator_with_invalid_api_key(): invalid_dsn_list = [ "https://[email protected]/33", "https://[email protected]/33" "https://[email protected]/33" ] # Should raise value error as api keys are valid uuid4 hex strings for dsn in invalid_dsn_list: with pytest.raises(ValueError) as exc: utils.DSN(dsn) assert str(exc.value) == utils.DSN.ERROR_MESSAGE
def test_dsn_validator_with_invalid_dsn(): invalid_dsn_list = [ "", "foobar" "[email protected]/", "domain.com", None, {}, 0, [], ] for dsn in invalid_dsn_list: with pytest.raises(ValueError) as exc: utils.DSN(dsn) assert str(exc.value) == utils.DSN.ERROR_MESSAGE