Hardening: Centralized zero-trust CognitiveStack validation and removed synthetic e2e test mocks

This commit is contained in:
2026-05-03 20:30:30 +02:00
parent c7c7ce29f8
commit 4b645c6fb2
3 changed files with 57 additions and 29 deletions

View File

@@ -11,13 +11,12 @@ import datetime
from tests.e2e.conftest import E2EDeviceStub, load_fixture_xml
def test_feed_loop_escapes_foreign_app(e2e_configs):
def test_feed_loop_escapes_foreign_app(e2e_configs, e2e_cognitive_stack_factory):
"""
Simulates: Feed → Play Store.
The loop must detect com.android.vending and abort immediately.
"""
from GramAddict.core.bot_flow import _run_zero_latency_feed_loop
from GramAddict.core.dopamine_engine import DopamineEngine
feed_xml = load_fixture_xml("home_feed_with_ad.xml")
play_store_xml = load_fixture_xml("play_store_from_story_link.xml")
@@ -25,27 +24,8 @@ def test_feed_loop_escapes_foreign_app(e2e_configs):
# Feed -> Play Store
device = E2EDeviceStub([feed_xml, play_store_xml])
dopamine = DopamineEngine()
dopamine.session_limit_seconds = 999
# Needs a dummy zero_engine and nav_graph
class DummyZeroEngine:
pass
class DummyNavGraph:
def do(self, action):
pass
def navigate_to(self, state, engine):
pass
cognitive_stack = {
"dopamine": dopamine,
"zero_engine": DummyZeroEngine(),
"nav_graph": DummyNavGraph(),
"radome": None,
"active_inference": None,
}
cognitive_stack = e2e_cognitive_stack_factory(device)
cognitive_stack["dopamine"].session_limit_seconds = 999
session_state = type(
"S", (), {"startTime": datetime.datetime.now(), "check_limit": lambda *args, **kwargs: (False, False)}
@@ -55,7 +35,13 @@ def test_feed_loop_escapes_foreign_app(e2e_configs):
e2e_configs.args.speed_multiplier = 0.01
result = _run_zero_latency_feed_loop(
device, DummyZeroEngine(), DummyNavGraph(), e2e_configs, session_state, "HomeFeed", cognitive_stack
device,
cognitive_stack["zero_engine"],
cognitive_stack["nav_graph"],
e2e_configs,
session_state,
"HomeFeed",
cognitive_stack,
)
# Must return CONTEXT_LOST

View File

@@ -18,13 +18,12 @@ import datetime
from tests.e2e.conftest import E2EDeviceStub, load_fixture_xml
def test_story_loop_escapes_foreign_app(e2e_configs):
def test_story_loop_escapes_foreign_app(e2e_configs, e2e_cognitive_stack_factory):
"""
Simulates: Story → Story → Story → Play Store (via swipe-up link).
The loop must detect com.android.vending and abort immediately.
"""
from GramAddict.core.bot_flow import _run_zero_latency_stories_loop
from GramAddict.core.dopamine_engine import DopamineEngine
story_xml = load_fixture_xml("story_view_before_linkout.xml")
play_store_xml = load_fixture_xml("play_store_from_story_link.xml")
@@ -32,9 +31,8 @@ def test_story_loop_escapes_foreign_app(e2e_configs):
# 3 story iterations → then Play Store appears
device = E2EDeviceStub([story_xml, story_xml, story_xml, play_store_xml])
dopamine = DopamineEngine()
dopamine.session_limit_seconds = 999
cognitive_stack = {"dopamine": dopamine}
cognitive_stack = e2e_cognitive_stack_factory(device)
cognitive_stack["dopamine"].session_limit_seconds = 999
session_state = type("S", (), {"startTime": datetime.datetime.now()})()