505
505
MillisecondsValueArgumentMixIn):
506
506
property = "ApprovalDuration"
508
def has_actions(options):
509
return any((options.enable,
511
options.bump_timeout,
512
options.start_checker,
513
options.stop_checker,
516
options.checker is not None,
517
options.timeout is not None,
518
options.extended_timeout is not None,
519
options.interval is not None,
520
options.approved_by_default is not None,
521
options.approval_delay is not None,
522
options.approval_duration is not None,
523
options.host is not None,
524
options.secret is not None,
528
508
def add_command_line_options(parser):
529
509
parser.add_argument("--version", action="version",
530
510
version="%(prog)s {}".format(version),
556
536
help="Remove client")
557
537
parser.add_argument("-c", "--checker",
558
538
help="Set checker command for client")
559
parser.add_argument("-t", "--timeout",
539
parser.add_argument("-t", "--timeout", type=string_to_delta,
560
540
help="Set timeout for client")
561
parser.add_argument("--extended-timeout",
541
parser.add_argument("--extended-timeout", type=string_to_delta,
562
542
help="Set extended timeout for client")
563
parser.add_argument("-i", "--interval",
543
parser.add_argument("-i", "--interval", type=string_to_delta,
564
544
help="Set checker interval for client")
565
545
approve_deny_default = parser.add_mutually_exclusive_group()
566
546
approve_deny_default.add_argument(
571
551
"--deny-by-default", action="store_false",
572
552
dest="approved_by_default",
573
553
help="Set client to be denied by default")
574
parser.add_argument("--approval-delay",
554
parser.add_argument("--approval-delay", type=string_to_delta,
575
555
help="Set delay before client approve/deny")
576
parser.add_argument("--approval-duration",
556
parser.add_argument("--approval-duration", type=string_to_delta,
577
557
help="Set duration of one client approval")
578
558
parser.add_argument("-H", "--host", help="Set host for client")
579
559
parser.add_argument("-s", "--secret",
672
652
options = parser.parse_args()
654
def has_actions(options):
655
return any((options.enable,
657
options.bump_timeout,
658
options.start_checker,
659
options.stop_checker,
662
options.checker is not None,
663
options.timeout is not None,
664
options.extended_timeout is not None,
665
options.interval is not None,
666
options.approved_by_default is not None,
667
options.approval_delay is not None,
668
options.approval_duration is not None,
669
options.host is not None,
670
options.secret is not None,
674
674
if has_actions(options) and not (options.client or options.all):
675
675
parser.error("Options require clients names or --all.")
676
676
if options.verbose and has_actions(options):
1100
1100
class TestSetTimeoutCmd(TestValueArgumentPropertyCmd):
1101
1101
command = SetTimeoutCmd
1102
1102
property = "Timeout"
1103
values_to_set = ["P0D", "PT5M", "PT1S", "PT120S", "P1Y"]
1104
values_to_get = [0, 300000, 1000, 120000, 31449600000]
1103
values_to_set = [datetime.timedelta(),
1104
datetime.timedelta(minutes=5),
1105
datetime.timedelta(seconds=1),
1106
datetime.timedelta(weeks=1),
1107
datetime.timedelta(weeks=52)]
1108
values_to_get = [0, 300000, 1000, 604800000, 31449600000]
1106
1110
class TestSetExtendedTimeoutCmd(TestValueArgumentPropertyCmd):
1107
1111
command = SetExtendedTimeoutCmd
1108
1112
property = "ExtendedTimeout"
1109
values_to_set = ["P0D", "PT5M", "PT1S", "PT120S", "P1Y"]
1110
values_to_get = [0, 300000, 1000, 120000, 31449600000]
1113
values_to_set = [datetime.timedelta(),
1114
datetime.timedelta(minutes=5),
1115
datetime.timedelta(seconds=1),
1116
datetime.timedelta(weeks=1),
1117
datetime.timedelta(weeks=52)]
1118
values_to_get = [0, 300000, 1000, 604800000, 31449600000]
1112
1120
class TestSetIntervalCmd(TestValueArgumentPropertyCmd):
1113
1121
command = SetIntervalCmd
1114
1122
property = "Interval"
1115
values_to_set = ["P0D", "PT5M", "PT1S", "PT120S", "P1Y"]
1116
values_to_get = [0, 300000, 1000, 120000, 31449600000]
1123
values_to_set = [datetime.timedelta(),
1124
datetime.timedelta(minutes=5),
1125
datetime.timedelta(seconds=1),
1126
datetime.timedelta(weeks=1),
1127
datetime.timedelta(weeks=52)]
1128
values_to_get = [0, 300000, 1000, 604800000, 31449600000]
1118
1130
class TestSetApprovalDelayCmd(TestValueArgumentPropertyCmd):
1119
1131
command = SetApprovalDelayCmd
1120
1132
property = "ApprovalDelay"
1121
values_to_set = ["P0D", "PT5M", "PT1S", "PT120S", "P1Y"]
1122
values_to_get = [0, 300000, 1000, 120000, 31449600000]
1133
values_to_set = [datetime.timedelta(),
1134
datetime.timedelta(minutes=5),
1135
datetime.timedelta(seconds=1),
1136
datetime.timedelta(weeks=1),
1137
datetime.timedelta(weeks=52)]
1138
values_to_get = [0, 300000, 1000, 604800000, 31449600000]
1124
1140
class TestSetApprovalDurationCmd(TestValueArgumentPropertyCmd):
1125
1141
command = SetApprovalDurationCmd
1126
1142
property = "ApprovalDuration"
1127
values_to_set = ["P0D", "PT5M", "PT1S", "PT120S", "P1Y"]
1128
values_to_get = [0, 300000, 1000, 120000, 31449600000]
1143
values_to_set = [datetime.timedelta(),
1144
datetime.timedelta(minutes=5),
1145
datetime.timedelta(seconds=1),
1146
datetime.timedelta(weeks=1),
1147
datetime.timedelta(weeks=52)]
1148
values_to_get = [0, 300000, 1000, 604800000, 31449600000]
1130
1150
class Test_command_from_options(unittest.TestCase):
1131
1151
def setUp(self):