def test_successfully_add_ticket(self, mock_validate_name, mock_validate_uniq, mock_validate_options): configuration = [ config_structure.ConfigItem("ticket", "some-ticket"), ] self.assertEqual( config_structure.add_ticket( None, configuration, "new-ticket", { "timeout": "10", }, allow_unknown_options=False, ), [ config_structure.ConfigItem("ticket", "some-ticket"), config_structure.ConfigItem("ticket", "new-ticket", [ config_structure.ConfigItem("timeout", "10"), ]), ], ) mock_validate_name.assert_called_once_with("new-ticket") mock_validate_uniq.assert_called_once_with(configuration, "new-ticket") mock_validate_options.assert_called_once_with(None, {"timeout": "10"}, False)
def test_add_authfile(self): self.assertEqual([ config_structure.ConfigItem("authfile", "/path/to/auth.file"), config_structure.ConfigItem("site", "1.1.1.1"), ], config_structure.set_authfile([ config_structure.ConfigItem("site", "1.1.1.1"), ], "/path/to/auth.file"))
def test_returns_site_list_and_arbitrators_list(self): self.assertEqual( (["1.1.1.1", "2.2.2.2", "3.3.3.3"], ["4.4.4.4", "5.5.5.5"]), config_structure.take_peers([ config_structure.ConfigItem("site", "1.1.1.1"), config_structure.ConfigItem("site", "2.2.2.2"), config_structure.ConfigItem("site", "3.3.3.3"), config_structure.ConfigItem("arbitrator", "4.4.4.4"), config_structure.ConfigItem("arbitrator", "5.5.5.5"), ], ))
def test_successfully_remove_ticket(self, mock_validate_ticket_exists): configuration = [ config_structure.ConfigItem("ticket", "some-ticket"), config_structure.ConfigItem("ticket", "deprecated-ticket"), ] self.assertEqual( config_structure.remove_ticket(configuration, "deprecated-ticket"), [ config_structure.ConfigItem("ticket", "some-ticket"), ]) mock_validate_ticket_exists.assert_called_once_with( configuration, "deprecated-ticket")
def organize_lines(raw_line_list): #Decision: Global key is moved up when is below ticket. Alternative is move #it below all ticket details. But it is confusing. global_section = [] ticket_section = [] current_ticket = None for key, value in raw_line_list: if key == "ticket": current_ticket = config_structure.ConfigItem(key, value) ticket_section.append(current_ticket) elif key in config_structure.GLOBAL_KEYS or not current_ticket: global_section.append(config_structure.ConfigItem(key, value)) else: current_ticket.details.append( config_structure.ConfigItem(key, value)) return global_section + ticket_section
def test_raises_on_duplicate_ticket(self): assert_raise_library_error( lambda: config_structure.validate_ticket_unique( [config_structure.ConfigItem("ticket", "A")], "A"), ( severities.ERROR, report_codes.BOOTH_TICKET_DUPLICATE, { "ticket_name": "A", }, ), )
def test_raises_on_duplicate_ticket(self): assert_raise_library_error( lambda: config_structure.validate_ticket_exists( [config_structure.ConfigItem("ticket", "B")], "A"), ( severities.ERROR, report_codes.BOOTH_TICKET_DOES_NOT_EXIST, { "ticket_name": "A", }, ), )
def test_convert_all_supported_items(self): self.assertEqual([ config_structure.ConfigItem("authfile", "/path/to/auth.file"), config_structure.ConfigItem("site", "1.1.1.1"), config_structure.ConfigItem("site", "2.2.2.2"), config_structure.ConfigItem("arbitrator", "3.3.3.3"), config_structure.ConfigItem("ticket", "TA"), config_structure.ConfigItem( "ticket", "TB", [config_structure.ConfigItem("expire", "10")]), ], config_exchange.from_exchange_format([ { "key": "authfile", "value": "/path/to/auth.file", "details": [] }, { "key": "site", "value": "1.1.1.1", "details": [] }, { "key": "site", "value": "2.2.2.2", "details": [] }, { "key": "arbitrator", "value": "3.3.3.3", "details": [] }, { "key": "ticket", "value": "TA", "details": [] }, { "key": "ticket", "value": "TB", "details": [{ "key": "expire", "value": "10", "details": [] }] }, ]))
def test_convert_parsed_config_to_exchange_format(self): self.assertEqual( [ { "key": "site", "value": "1.1.1.1", "details": [] }, { "key": "site", "value": "2.2.2.2", "details": [] }, { "key": "arbitrator", "value": "3.3.3.3", "details": [] }, { "key": "ticket", "value": "TA", "details": [] }, { "key": "ticket", "value": "TB", "details": [{ "key": "timeout", "value": "10", "details": [] }] }, ], config_exchange.to_exchange_format([ config_structure.ConfigItem("site", "1.1.1.1"), config_structure.ConfigItem("site", "2.2.2.2"), config_structure.ConfigItem("arbitrator", "3.3.3.3"), config_structure.ConfigItem("ticket", "TA"), config_structure.ConfigItem( "ticket", "TB", [config_structure.ConfigItem("timeout", "10")]), ]))
def test_returns_false_if_ticket_in_structure(self): self.assertFalse( config_structure.ticket_exists( [config_structure.ConfigItem("ticket", "A")], "B"))