48
log = logging.getLogger(sys.argv[0])
49
logging.basicConfig(level="INFO", # Show info level messages
50
format="%(message)s") # Show basic log messages
52
46
if sys.version_info.major == 2:
351
345
if options.all and not has_actions(options):
352
346
parser.error("--all requires an action.")
350
fail_count, test_count = doctest.testmod()
351
sys.exit(os.EX_OK if fail_count == 0 else 1)
355
354
bus = dbus.SystemBus()
356
355
mandos_dbus_objc = bus.get_object(busname, server_path)
357
356
except dbus.exceptions.DBusException:
358
log.critical("Could not connect to Mandos server")
357
print("Could not connect to Mandos server", file=sys.stderr)
361
360
mandos_serv = dbus.Interface(mandos_dbus_objc,
380
379
os.dup2(stderrcopy, sys.stderr.fileno())
381
380
os.close(stderrcopy)
382
381
except dbus.exceptions.DBusException as e:
383
log.critical("Failed to access Mandos server through D-Bus:"
382
print("Access denied: "
383
"Accessing mandos server through D-Bus: {}".format(e),
387
387
# Compile dict of (clients: properties) to process
398
398
clients[client_objc] = client
401
log.critical("Client not found on server: %r", name)
401
print("Client not found on server: {!r}"
402
.format(name), file=sys.stderr)
404
405
if not has_actions(options) and clients:
492
493
client.Approve(dbus.Boolean(False),
493
494
dbus_interface=client_interface)
496
class Test_milliseconds_to_string(unittest.TestCase):
498
self.assertEqual(milliseconds_to_string(93785000),
500
def test_no_days(self):
501
self.assertEqual(milliseconds_to_string(7385000), "02:03:05")
502
def test_all_zero(self):
503
self.assertEqual(milliseconds_to_string(0), "00:00:00")
504
def test_no_fractional_seconds(self):
505
self.assertEqual(milliseconds_to_string(400), "00:00:00")
506
self.assertEqual(milliseconds_to_string(900), "00:00:00")
507
self.assertEqual(milliseconds_to_string(1900), "00:00:01")
510
def should_only_run_tests():
511
parser = argparse.ArgumentParser(add_help=False)
512
parser.add_argument("--check", action='store_true')
513
args, unknown_args = parser.parse_known_args()
514
run_tests = args.check
516
# Remove --check argument from sys.argv
517
sys.argv[1:] = unknown_args
520
# Add all tests from doctest strings
521
def load_tests(loader, tests, none):
523
tests.addTests(doctest.DocTestSuite())
526
497
if __name__ == "__main__":
527
if should_only_run_tests():
528
# Call using ./tdd-python-script --check [--verbose]