feat(license): runtime trial gating UI + appendActivityLog entry point
This commit is contained in:
@@ -267,3 +267,33 @@ def test_replay_trial_expiry(tmp_path, qapp):
|
||||
def test_replay_trial_expired_without_marker(tmp_path, qapp):
|
||||
model = LicenseModel(str(tmp_path))
|
||||
assert model.replayTrialExpired() is True
|
||||
|
||||
|
||||
# ===== Review-access gate (ADR-0005 "Deferred" item) =====
|
||||
def test_review_access_not_blocked_before_trial_starts(tmp_path, qapp):
|
||||
model = LicenseModel(str(tmp_path))
|
||||
assert model.reviewAccessBlocked() is False
|
||||
|
||||
|
||||
def test_review_access_not_blocked_during_fresh_trial(tmp_path, qapp):
|
||||
model = LicenseModel(str(tmp_path))
|
||||
model.startReplayTrial()
|
||||
assert model.reviewAccessBlocked() is False
|
||||
|
||||
|
||||
def test_review_access_blocked_once_trial_expired(tmp_path, qapp):
|
||||
model = LicenseModel(str(tmp_path))
|
||||
model.startReplayTrial()
|
||||
old = time.time() - 31 * 86400
|
||||
os.utime(model._trial_marker, (old, old))
|
||||
assert model.reviewAccessBlocked() is True
|
||||
|
||||
|
||||
def test_review_access_not_blocked_with_permanent_license_even_if_trial_expired(tmp_path, qapp):
|
||||
(tmp_path / "licenses").mkdir()
|
||||
write_license(tmp_path / "licenses", level="01")
|
||||
model = LicenseModel(str(tmp_path))
|
||||
model.startReplayTrial()
|
||||
old = time.time() - 31 * 86400
|
||||
os.utime(model._trial_marker, (old, old))
|
||||
assert model.reviewAccessBlocked() is False
|
||||
|
||||
Reference in New Issue
Block a user