C-6: ConnectorRuntime enforces capability_mask per operation.
READ-only ACs cannot invoke MUTATE operations (wipe, lock, retire).
C-7: AC validated against database (exists, active, not expired)
before connector invocation.
C-9: Delegated AC capability bounded by delegator's capability.
C-10: Command counter uses atomic SQL increment with limit check.
M-23: expire_stale() uses same atomic SQL pattern.
H-1: Sensitive credential fields hidden from repr/logs via repr=False.
H-2: Stub backend requires ALLOW_STUB_CREDENTIALS=true to activate.
H-3: Kerberos backend raises CredentialResolutionError instead of
returning stub ticket.
H-4: Chronicle INTENT emitted before execution, RESULT after.
H-5: device_id validated as UUID before Graph API URL interpolation.
H-8: ConnectorRuntime enforces governance for all connector invocations.
Signed-off-by: Tyler King <tking@guildhouse.dev>
41 lines
1.3 KiB
Python
41 lines
1.3 KiB
Python
#! /usr/bin/env python
|
|
from __future__ import absolute_import
|
|
from __future__ import print_function
|
|
|
|
import sys
|
|
import os
|
|
from unittest import TestCase as NonLeakingTestCase
|
|
|
|
import greenlet
|
|
|
|
# No reason to run this multiple times under leakchecks,
|
|
# it doesn't do anything.
|
|
class VersionTests(NonLeakingTestCase):
|
|
def test_version(self):
|
|
def find_dominating_file(name):
|
|
if os.path.exists(name):
|
|
return name
|
|
|
|
tried = []
|
|
here = os.path.abspath(os.path.dirname(__file__))
|
|
for i in range(10):
|
|
up = ['..'] * i
|
|
path = [here] + up + [name]
|
|
fname = os.path.join(*path)
|
|
fname = os.path.abspath(fname)
|
|
tried.append(fname)
|
|
if os.path.exists(fname):
|
|
return fname
|
|
raise AssertionError("Could not find file " + name + "; checked " + str(tried))
|
|
|
|
try:
|
|
setup_py = find_dominating_file('setup.py')
|
|
except AssertionError as e:
|
|
self.skipTest("Unable to find setup.py; must be out of tree. " + str(e))
|
|
|
|
|
|
invoke_setup = "%s %s --version" % (sys.executable, setup_py)
|
|
with os.popen(invoke_setup) as f:
|
|
sversion = f.read().strip()
|
|
|
|
self.assertEqual(sversion, greenlet.__version__)
|