Пример #1
0
    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)
Пример #2
0
 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"))
Пример #3
0
 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"),
         ], ))
Пример #4
0
 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")
Пример #5
0
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
Пример #6
0
 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",
             },
         ),
     )
Пример #7
0
 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",
             },
         ),
     )
Пример #8
0
 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": []
                              }]
                          },
                      ]))
Пример #9
0
 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")]),
         ]))
Пример #10
0
 def test_returns_false_if_ticket_in_structure(self):
     self.assertFalse(
         config_structure.ticket_exists(
             [config_structure.ConfigItem("ticket", "A")], "B"))