Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
def test_bad_authentication_request_should_raise_looker_api_error():
with pytest.raises(LookerApiError):
LookerClient(
base_url="https://spectacles.looker.com",
client_id=os.environ.get("LOOKER_CLIENT_ID"),
client_secret="xxxxxxxxxxxxxx",
)
def test_authenticate_should_set_session_headers(mock_post, monkeypatch):
mock_looker_version = Mock(spec=LookerClient.get_looker_release_version)
mock_looker_version.return_value("1.2.3")
monkeypatch.setattr(LookerClient, "get_looker_release_version", mock_looker_version)
mock_post_response = Mock(spec=requests.Response)
mock_post_response.json.return_value = dict(
access_token="test_access_token", token_type="Bearer", expires_in=3600
)
mock_post.return_value = mock_post_response
client = LookerClient("base_url", "client_id", "client_secret")
assert client.session.headers == {"Authorization": "token test_access_token"}
def get_client_method_names() -> List[str]:
"""Extracts method names from LookerClient to test for bad responses"""
client_members: List[Tuple[str, Callable]] = inspect.getmembers(
LookerClient, predicate=inspect.isroutine
)
client_methods: List[str] = [
member[0] for member in client_members if not member[0].startswith("__")
]
for skip_method in (
"authenticate",
"cancel_query_task",
"request",
"get",
"post",
"put",
"patch",
"delete",
):
client_methods.remove(skip_method)
return client_methods
def test_unsupported_api_version_should_raise_error():
with pytest.raises(SpectaclesException):
LookerClient(
base_url="https://spectacles.looker.com",
client_id=os.environ.get("LOOKER_CLIENT_ID"),
client_secret=os.environ.get("LOOKER_CLIENT_SECRET"),
api_version=3.0,
)
def test_authenticate_should_set_session_headers(mock_post, monkeypatch):
mock_looker_version = Mock(spec=LookerClient.get_looker_release_version)
mock_looker_version.return_value("1.2.3")
monkeypatch.setattr(LookerClient, "get_looker_release_version", mock_looker_version)
mock_post_response = Mock(spec=requests.Response)
mock_post_response.json.return_value = dict(
access_token="test_access_token", token_type="Bearer", expires_in=3600
)
mock_post.return_value = mock_post_response
client = LookerClient("base_url", "client_id", "client_secret")
assert client.session.headers == {"Authorization": "token test_access_token"}
def run_connect(
base_url: str, client_id: str, client_secret: str, port: int, api_version: float
) -> None:
"""Tests the connection and credentials for the Looker API."""
LookerClient(base_url, client_id, client_secret, port, api_version)
def __init__(
self,
base_url: str,
project: str,
branch: str,
client_id: str,
client_secret: str,
port: int = 19999,
api_version: float = 3.1,
remote_reset: bool = False,
import_projects: bool = False,
commit_ref: str = None,
):
self.project = project
self.import_projects = import_projects
self.client = LookerClient(
base_url, client_id, client_secret, port, api_version
)
self.branch_manager = LookerBranchManager(
self.client,
project,
branch,
remote_reset=remote_reset,
import_projects=import_projects,
commit_ref=commit_ref,
)
def __init__(
self,
base_url: str,
project: str,
branch: str,
client_id: str,
client_secret: str,
port: int = 19999,
api_version: float = 3.1,
remote_reset: bool = False,
import_projects: bool = False,
commit_ref: Optional[str] = None,
):
self.project = project
self.import_projects = import_projects
self.client = LookerClient(
base_url, client_id, client_secret, port, api_version
)
self.branch_manager = LookerBranchManager(
self.client,
project,
branch,
remote_reset=remote_reset,
import_projects=import_projects,
commit_ref=commit_ref,
)