Import AITURK IDE 1.0.0-beta.1 from Hermes 63279301; preserve MIT license
This commit is contained in:
@@ -0,0 +1,90 @@
|
||||
"""Security-floor tests for the Google Workspace runtime installer."""
|
||||
|
||||
from __future__ import annotations
|
||||
|
||||
import importlib.util
|
||||
from importlib.metadata import PackageNotFoundError
|
||||
from pathlib import Path
|
||||
|
||||
import pytest
|
||||
|
||||
|
||||
SETUP_PATH = (
|
||||
Path(__file__).resolve().parents[2]
|
||||
/ "skills/productivity/google-workspace/scripts/setup.py"
|
||||
)
|
||||
|
||||
|
||||
@pytest.fixture()
|
||||
def setup_module():
|
||||
spec = importlib.util.spec_from_file_location(
|
||||
"test_google_workspace_setup_module",
|
||||
SETUP_PATH,
|
||||
)
|
||||
assert spec is not None and spec.loader is not None
|
||||
module = importlib.util.module_from_spec(spec)
|
||||
spec.loader.exec_module(module)
|
||||
return module
|
||||
|
||||
|
||||
def test_stale_google_transitives_are_reported_missing(setup_module, monkeypatch):
|
||||
installed = {
|
||||
"google-api-python-client": "2.194.0",
|
||||
"google-auth": "2.55.0",
|
||||
"google-auth-oauthlib": "1.3.1",
|
||||
"google-auth-httplib2": "0.3.1",
|
||||
"httplib2": "0.31.2",
|
||||
"pyasn1": "0.6.3",
|
||||
}
|
||||
|
||||
def fake_version(name):
|
||||
try:
|
||||
return installed[name]
|
||||
except KeyError:
|
||||
raise PackageNotFoundError(name) from None
|
||||
|
||||
monkeypatch.setattr(setup_module, "_distribution_version", fake_version)
|
||||
|
||||
assert setup_module._missing_required_packages() == [
|
||||
"google-auth==2.55.1",
|
||||
"httplib2==0.32.0",
|
||||
"pyasn1==0.6.4",
|
||||
]
|
||||
|
||||
|
||||
def test_installer_repairs_stale_transitives(setup_module, monkeypatch):
|
||||
states = iter(
|
||||
[
|
||||
[
|
||||
"google-auth==2.55.1",
|
||||
"httplib2==0.32.0",
|
||||
"pyasn1==0.6.4",
|
||||
],
|
||||
[],
|
||||
]
|
||||
)
|
||||
monkeypatch.setattr(
|
||||
setup_module,
|
||||
"_missing_required_packages",
|
||||
lambda: next(states),
|
||||
)
|
||||
calls = []
|
||||
monkeypatch.setattr(
|
||||
setup_module.subprocess,
|
||||
"check_call",
|
||||
lambda argv, **kwargs: calls.append(argv),
|
||||
)
|
||||
|
||||
assert setup_module.install_deps() is True
|
||||
assert calls == [
|
||||
[
|
||||
setup_module.sys.executable,
|
||||
"-m",
|
||||
"pip",
|
||||
"install",
|
||||
"--quiet",
|
||||
"google-auth==2.55.1",
|
||||
"httplib2==0.32.0",
|
||||
"pyasn1==0.6.4",
|
||||
]
|
||||
]
|
||||
Reference in New Issue
Block a user