Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 0 additions & 4 deletions sparkmeter/config/configdict.py
Original file line number Diff line number Diff line change
Expand Up @@ -151,9 +151,5 @@ def is_cloud(self):
"""Get if this a cloud system."""
return self.local_system == self.CLOUD

def is_offline(self):
"""Get if metering-provider startup is disabled for this process."""
return bool(self.get("OFFLINE", False))


config = ConfigDict()
10 changes: 0 additions & 10 deletions sparkmeter/config/tests/test_configdict.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,13 +15,3 @@ def test_system_methods(self, config):
assert config.local_system == config.CLOUD
assert config.is_ground() is False
assert config.is_cloud() is True

def test_is_offline(self, config):
# OFFLINE unset defaults to online; the flag reads the OFFLINE config
# value, which config normalizes from SM_OFFLINE at load time.
config.pop("OFFLINE", None)
assert config.is_offline() is False
config["OFFLINE"] = False
assert config.is_offline() is False
config["OFFLINE"] = True
assert config.is_offline() is True
11 changes: 0 additions & 11 deletions sparkmeter/metering/lifespan.py
Original file line number Diff line number Diff line change
Expand Up @@ -133,11 +133,6 @@ async def ensure_metering_runtime(
app.state.metering = None
return False

if config.is_offline():
logger.info("metering provider disabled in offline mode; skipping startup")
app.state.metering = None
return False

flask_app = getattr(app.state, "flask_app", None)
desired_signature = _enabled_provider_signature(flask_app)
existing_client = getattr(app.state, "metering", None)
Expand Down Expand Up @@ -321,12 +316,6 @@ async def metering_lifespan(app: FastAPI) -> AsyncIterator[None]:
yield
return

if config.is_offline():
logger.info("metering provider disabled in offline mode; skipping startup")
app.state.metering = None
yield
return

started = await ensure_metering_runtime(app)
if not started:
yield
Expand Down
23 changes: 0 additions & 23 deletions sparkmeter/metering/tests/test_lifespan.py
Original file line number Diff line number Diff line change
Expand Up @@ -490,19 +490,9 @@ async def test_cloud_mode_is_noop(self, config):
pass
assert app.state.metering is None

@pytest.mark.asyncio
async def test_offline_mode_is_noop(self, config):
config["HEROKU"] = False
config["OFFLINE"] = True
app = SimpleNamespace(state=SimpleNamespace())
async with lifespan.metering_lifespan(app):
pass
assert app.state.metering is None

@pytest.mark.asyncio
async def test_not_started_skips_shutdown(self, monkeypatch, config):
config["HEROKU"] = False
config["OFFLINE"] = False

async def fake_ensure(app):
return False
Expand All @@ -523,7 +513,6 @@ async def fake_shutdown(app):
@pytest.mark.asyncio
async def test_started_runs_shutdown(self, monkeypatch, config):
config["HEROKU"] = False
config["OFFLINE"] = False

async def fake_ensure(app):
return True
Expand All @@ -550,17 +539,9 @@ async def test_not_ground_returns_false(self, config):
assert await lifespan.ensure_metering_runtime(app) is False
assert app.state.metering is None

@pytest.mark.asyncio
async def test_offline_returns_false(self, config):
config["HEROKU"] = False
config["OFFLINE"] = True
app = SimpleNamespace(state=SimpleNamespace())
assert await lifespan.ensure_metering_runtime(app) is False

@pytest.mark.asyncio
async def test_already_active_reruns_reconcile(self, monkeypatch, config):
config["HEROKU"] = False
config["OFFLINE"] = False
signature = ("a", "http://x", "http", True)
monkeypatch.setattr(lifespan, "_enabled_provider_signature", lambda flask_app: signature)

Expand Down Expand Up @@ -976,7 +957,6 @@ def _install_ensure_harness(
from sparkmeter.config.configdict import config

monkeypatch.setitem(config, "HEROKU", False)
monkeypatch.setitem(config, "OFFLINE", False)
monkeypatch.setattr(lifespan, "_enabled_provider_signature", lambda flask_app: signature)
monkeypatch.setattr(
lifespan, "configured_provider_url", lambda *, default="", flask_app=None: provider_url
Expand Down Expand Up @@ -1040,7 +1020,6 @@ async def test_ensure_config_change_shuts_down_then_early_returns(self, monkeypa
# shutdown_metering_runtime is awaited, then the empty provider URL
# early-returns False with metering cleared.
config["HEROKU"] = False
config["OFFLINE"] = False
monkeypatch.setattr(
lifespan, "_enabled_provider_signature", lambda flask_app: ("new", "http://new", "http", True)
)
Expand Down Expand Up @@ -1071,7 +1050,6 @@ async def fake_shutdown(app):
@pytest.mark.asyncio
async def test_ensure_init_pass_logs_per_result_branch(self, monkeypatch, caplog, config):
config["HEROKU"] = False
config["OFFLINE"] = False
monkeypatch.setattr(
lifespan, "_enabled_provider_signature", lambda flask_app: ("x", "y", "http", True)
)
Expand Down Expand Up @@ -1106,7 +1084,6 @@ async def test_ensure_init_pass_logs_per_result_branch(self, monkeypatch, caplog
@pytest.mark.asyncio
async def test_ensure_init_pass_exception_is_swallowed(self, monkeypatch, caplog, config):
config["HEROKU"] = False
config["OFFLINE"] = False
monkeypatch.setattr(
lifespan, "_enabled_provider_signature", lambda flask_app: ("x", "y", "http", True)
)
Expand Down
Loading