diff --git a/CHANGELOG.md b/CHANGELOG.md index 5e43e571b..10de30816 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,9 @@ ### 1.0.3-dev +* `lobster-codebeamer`: + - Enabled parallel execution for system tests, improving test suite performance. + * All tools now automatically create output directories if they don't exist. Previously, tools would crash with an exception if the specified output directory path did not exist. This enhancement improves usability and diff --git a/tests_system/asserter.py b/tests_system/asserter.py index 18afc1abd..bcd615fc1 100644 --- a/tests_system/asserter.py +++ b/tests_system/asserter.py @@ -57,6 +57,16 @@ def assertInStdErr(self, expected_substring: str, ) ) + def apply_replacements(self, content: str) -> str: + """ + Apply placeholder replacements to expected file content. + Override this method in subclasses to add custom replacements. + """ + return content.replace( + "CURRENT_WORKING_DIRECTORY", + str(self._test_runner.working_dir), + ) + def assertOutputFiles(self): """For each expected file, checks if an actual file has been created with the expected content @@ -101,9 +111,8 @@ def assertOutputFiles(self): modified_actual = actual_file.read().replace("\\\\", "/") # lobster-trace: system_test.CWD_Placeholder - modified_expected = expected_file.read().replace( - "CURRENT_WORKING_DIRECTORY", - str(self._test_runner.working_dir), + modified_expected = self.apply_replacements( + expected_file.read() ) modified_actual_json = is_valid_json(modified_actual) modified_expected_json = is_valid_json(modified_expected) diff --git a/tests_system/lobster_codebeamer/BUILD.bazel b/tests_system/lobster_codebeamer/BUILD.bazel index f98fe9be0..6a94cab45 100644 --- a/tests_system/lobster_codebeamer/BUILD.bazel +++ b/tests_system/lobster_codebeamer/BUILD.bazel @@ -43,7 +43,6 @@ py_library( py_test( name = "test_extract_requirements", srcs = ["test_extract_requirements.py"], - tags = ["exclusive"], deps = [ ":lobster_codebeamer", requirement("flask"), @@ -53,7 +52,6 @@ py_test( py_test( name = "test_lobster_codebeamer", srcs = ["test_lobster_codebeamer.py"], - tags = ["exclusive"], deps = [ ":lobster_codebeamer", "//tests_system", @@ -64,7 +62,6 @@ py_test( py_test( name = "test_valid_flow", srcs = ["test_valid_flow.py"], - tags = ["exclusive"], deps = [ ":lobster_codebeamer", requirement("flask"), diff --git a/tests_system/lobster_codebeamer/data/10_items.lobster b/tests_system/lobster_codebeamer/data/10_items.lobster index d78de2b92..b10500cbc 100644 --- a/tests_system/lobster_codebeamer/data/10_items.lobster +++ b/tests_system/lobster_codebeamer/data/10_items.lobster @@ -4,7 +4,7 @@ "tag": "req 1@100", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 10000, "item": 1, "version": 100, @@ -24,7 +24,7 @@ "tag": "req 2@200", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 20000, "item": 2, "version": 200, @@ -44,7 +44,7 @@ "tag": "req 3@300", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 30000, "item": 3, "version": 300, @@ -64,7 +64,7 @@ "tag": "req 4@400", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 40000, "item": 4, "version": 400, @@ -84,7 +84,7 @@ "tag": "req 5@500", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 50000, "item": 5, "version": 500, @@ -104,7 +104,7 @@ "tag": "req 6@600", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 60000, "item": 6, "version": 600, @@ -124,7 +124,7 @@ "tag": "req 7@700", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 70000, "item": 7, "version": 700, @@ -144,7 +144,7 @@ "tag": "req 8@800", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 80000, "item": 8, "version": 800, @@ -164,7 +164,7 @@ "tag": "req 9@900", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 90000, "item": 9, "version": 900, @@ -184,7 +184,7 @@ "tag": "req 10@1000", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 100000, "item": 10, "version": 1000, diff --git a/tests_system/lobster_codebeamer/data/11_items.lobster b/tests_system/lobster_codebeamer/data/11_items.lobster index b229e3949..cd76d37d3 100644 --- a/tests_system/lobster_codebeamer/data/11_items.lobster +++ b/tests_system/lobster_codebeamer/data/11_items.lobster @@ -4,7 +4,7 @@ "tag": "req 1@100", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 10000, "item": 1, "version": 100, @@ -24,7 +24,7 @@ "tag": "req 2@200", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 20000, "item": 2, "version": 200, @@ -44,7 +44,7 @@ "tag": "req 3@300", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 30000, "item": 3, "version": 300, @@ -64,7 +64,7 @@ "tag": "req 4@400", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 40000, "item": 4, "version": 400, @@ -84,7 +84,7 @@ "tag": "req 5@500", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 50000, "item": 5, "version": 500, @@ -104,7 +104,7 @@ "tag": "req 6@600", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 60000, "item": 6, "version": 600, @@ -124,7 +124,7 @@ "tag": "req 7@700", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 70000, "item": 7, "version": 700, @@ -144,7 +144,7 @@ "tag": "req 8@800", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 80000, "item": 8, "version": 800, @@ -164,7 +164,7 @@ "tag": "req 9@900", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 90000, "item": 9, "version": 900, @@ -184,7 +184,7 @@ "tag": "req 10@1000", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 100000, "item": 10, "version": 1000, @@ -204,7 +204,7 @@ "tag": "req 11@1100", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 110000, "item": 11, "version": 1100, diff --git a/tests_system/lobster_codebeamer/data/1_items.lobster b/tests_system/lobster_codebeamer/data/1_items.lobster index 4ceaa6da2..35f6e8c8a 100644 --- a/tests_system/lobster_codebeamer/data/1_items.lobster +++ b/tests_system/lobster_codebeamer/data/1_items.lobster @@ -4,7 +4,7 @@ "tag": "req 1@100", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 10000, "item": 1, "version": 100, diff --git a/tests_system/lobster_codebeamer/data/4_items.lobster b/tests_system/lobster_codebeamer/data/4_items.lobster index 3a60a036e..4ab040c3a 100644 --- a/tests_system/lobster_codebeamer/data/4_items.lobster +++ b/tests_system/lobster_codebeamer/data/4_items.lobster @@ -4,7 +4,7 @@ "tag": "req 1@100", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 10000, "item": 1, "version": 100, @@ -24,7 +24,7 @@ "tag": "req 2@200", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 20000, "item": 2, "version": 200, @@ -44,7 +44,7 @@ "tag": "req 3@300", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 30000, "item": 3, "version": 300, @@ -64,7 +64,7 @@ "tag": "req 4@400", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 40000, "item": 4, "version": 400, diff --git a/tests_system/lobster_codebeamer/data/5_items.lobster b/tests_system/lobster_codebeamer/data/5_items.lobster index de37c3342..335344807 100644 --- a/tests_system/lobster_codebeamer/data/5_items.lobster +++ b/tests_system/lobster_codebeamer/data/5_items.lobster @@ -4,7 +4,7 @@ "tag": "req 1@100", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 10000, "item": 1, "version": 100, @@ -24,7 +24,7 @@ "tag": "req 2@200", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 20000, "item": 2, "version": 200, @@ -44,7 +44,7 @@ "tag": "req 3@300", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 30000, "item": 3, "version": 300, @@ -64,7 +64,7 @@ "tag": "req 4@400", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 40000, "item": 4, "version": 400, @@ -84,7 +84,7 @@ "tag": "req 5@500", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 50000, "item": 5, "version": 500, diff --git a/tests_system/lobster_codebeamer/data/6_items.lobster b/tests_system/lobster_codebeamer/data/6_items.lobster index 5353621fc..c5feee9e1 100644 --- a/tests_system/lobster_codebeamer/data/6_items.lobster +++ b/tests_system/lobster_codebeamer/data/6_items.lobster @@ -4,7 +4,7 @@ "tag": "req 1@100", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 10000, "item": 1, "version": 100, @@ -24,7 +24,7 @@ "tag": "req 2@200", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 20000, "item": 2, "version": 200, @@ -44,7 +44,7 @@ "tag": "req 3@300", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 30000, "item": 3, "version": 300, @@ -64,7 +64,7 @@ "tag": "req 4@400", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 40000, "item": 4, "version": 400, @@ -84,7 +84,7 @@ "tag": "req 5@500", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 50000, "item": 5, "version": 500, @@ -104,7 +104,7 @@ "tag": "req 6@600", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 60000, "item": 6, "version": 600, diff --git a/tests_system/lobster_codebeamer/data/74_items.lobster b/tests_system/lobster_codebeamer/data/74_items.lobster index 67acc0deb..7acb317dc 100644 --- a/tests_system/lobster_codebeamer/data/74_items.lobster +++ b/tests_system/lobster_codebeamer/data/74_items.lobster @@ -4,7 +4,7 @@ "tag": "req 1@100", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 10000, "item": 1, "version": 100, @@ -24,7 +24,7 @@ "tag": "req 2@200", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 20000, "item": 2, "version": 200, @@ -44,7 +44,7 @@ "tag": "req 3@300", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 30000, "item": 3, "version": 300, @@ -64,7 +64,7 @@ "tag": "req 4@400", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 40000, "item": 4, "version": 400, @@ -84,7 +84,7 @@ "tag": "req 5@500", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 50000, "item": 5, "version": 500, @@ -104,7 +104,7 @@ "tag": "req 6@600", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 60000, "item": 6, "version": 600, @@ -124,7 +124,7 @@ "tag": "req 7@700", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 70000, "item": 7, "version": 700, @@ -144,7 +144,7 @@ "tag": "req 8@800", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 80000, "item": 8, "version": 800, @@ -164,7 +164,7 @@ "tag": "req 9@900", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 90000, "item": 9, "version": 900, @@ -184,7 +184,7 @@ "tag": "req 10@1000", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 100000, "item": 10, "version": 1000, @@ -204,7 +204,7 @@ "tag": "req 11@1100", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 110000, "item": 11, "version": 1100, @@ -224,7 +224,7 @@ "tag": "req 12@1200", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 120000, "item": 12, "version": 1200, @@ -244,7 +244,7 @@ "tag": "req 13@1300", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 130000, "item": 13, "version": 1300, @@ -264,7 +264,7 @@ "tag": "req 14@1400", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 140000, "item": 14, "version": 1400, @@ -284,7 +284,7 @@ "tag": "req 15@1500", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 150000, "item": 15, "version": 1500, @@ -304,7 +304,7 @@ "tag": "req 16@1600", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 160000, "item": 16, "version": 1600, @@ -324,7 +324,7 @@ "tag": "req 17@1700", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 170000, "item": 17, "version": 1700, @@ -344,7 +344,7 @@ "tag": "req 18@1800", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 180000, "item": 18, "version": 1800, @@ -364,7 +364,7 @@ "tag": "req 19@1900", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 190000, "item": 19, "version": 1900, @@ -384,7 +384,7 @@ "tag": "req 20@2000", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 200000, "item": 20, "version": 2000, @@ -404,7 +404,7 @@ "tag": "req 21@2100", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 210000, "item": 21, "version": 2100, @@ -424,7 +424,7 @@ "tag": "req 22@2200", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 220000, "item": 22, "version": 2200, @@ -444,7 +444,7 @@ "tag": "req 23@2300", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 230000, "item": 23, "version": 2300, @@ -464,7 +464,7 @@ "tag": "req 24@2400", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 240000, "item": 24, "version": 2400, @@ -484,7 +484,7 @@ "tag": "req 25@2500", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 250000, "item": 25, "version": 2500, @@ -504,7 +504,7 @@ "tag": "req 26@2600", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 260000, "item": 26, "version": 2600, @@ -524,7 +524,7 @@ "tag": "req 27@2700", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 270000, "item": 27, "version": 2700, @@ -544,7 +544,7 @@ "tag": "req 28@2800", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 280000, "item": 28, "version": 2800, @@ -564,7 +564,7 @@ "tag": "req 29@2900", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 290000, "item": 29, "version": 2900, @@ -584,7 +584,7 @@ "tag": "req 30@3000", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 300000, "item": 30, "version": 3000, @@ -604,7 +604,7 @@ "tag": "req 31@3100", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 310000, "item": 31, "version": 3100, @@ -624,7 +624,7 @@ "tag": "req 32@3200", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 320000, "item": 32, "version": 3200, @@ -644,7 +644,7 @@ "tag": "req 33@3300", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 330000, "item": 33, "version": 3300, @@ -664,7 +664,7 @@ "tag": "req 34@3400", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 340000, "item": 34, "version": 3400, @@ -684,7 +684,7 @@ "tag": "req 35@3500", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 350000, "item": 35, "version": 3500, @@ -704,7 +704,7 @@ "tag": "req 36@3600", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 360000, "item": 36, "version": 3600, @@ -724,7 +724,7 @@ "tag": "req 37@3700", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 370000, "item": 37, "version": 3700, @@ -744,7 +744,7 @@ "tag": "req 38@3800", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 380000, "item": 38, "version": 3800, @@ -764,7 +764,7 @@ "tag": "req 39@3900", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 390000, "item": 39, "version": 3900, @@ -784,7 +784,7 @@ "tag": "req 40@4000", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 400000, "item": 40, "version": 4000, @@ -804,7 +804,7 @@ "tag": "req 41@4100", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 410000, "item": 41, "version": 4100, @@ -824,7 +824,7 @@ "tag": "req 42@4200", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 420000, "item": 42, "version": 4200, @@ -844,7 +844,7 @@ "tag": "req 43@4300", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 430000, "item": 43, "version": 4300, @@ -864,7 +864,7 @@ "tag": "req 44@4400", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 440000, "item": 44, "version": 4400, @@ -884,7 +884,7 @@ "tag": "req 45@4500", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 450000, "item": 45, "version": 4500, @@ -904,7 +904,7 @@ "tag": "req 46@4600", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 460000, "item": 46, "version": 4600, @@ -924,7 +924,7 @@ "tag": "req 47@4700", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 470000, "item": 47, "version": 4700, @@ -944,7 +944,7 @@ "tag": "req 48@4800", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 480000, "item": 48, "version": 4800, @@ -964,7 +964,7 @@ "tag": "req 49@4900", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 490000, "item": 49, "version": 4900, @@ -984,7 +984,7 @@ "tag": "req 50@5000", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 500000, "item": 50, "version": 5000, @@ -1004,7 +1004,7 @@ "tag": "req 51@5100", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 510000, "item": 51, "version": 5100, @@ -1024,7 +1024,7 @@ "tag": "req 52@5200", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 520000, "item": 52, "version": 5200, @@ -1044,7 +1044,7 @@ "tag": "req 53@5300", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 530000, "item": 53, "version": 5300, @@ -1064,7 +1064,7 @@ "tag": "req 54@5400", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 540000, "item": 54, "version": 5400, @@ -1084,7 +1084,7 @@ "tag": "req 55@5500", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 550000, "item": 55, "version": 5500, @@ -1104,7 +1104,7 @@ "tag": "req 56@5600", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 560000, "item": 56, "version": 5600, @@ -1124,7 +1124,7 @@ "tag": "req 57@5700", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 570000, "item": 57, "version": 5700, @@ -1144,7 +1144,7 @@ "tag": "req 58@5800", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 580000, "item": 58, "version": 5800, @@ -1164,7 +1164,7 @@ "tag": "req 59@5900", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 590000, "item": 59, "version": 5900, @@ -1184,7 +1184,7 @@ "tag": "req 60@6000", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 600000, "item": 60, "version": 6000, @@ -1204,7 +1204,7 @@ "tag": "req 61@6100", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 610000, "item": 61, "version": 6100, @@ -1224,7 +1224,7 @@ "tag": "req 62@6200", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 620000, "item": 62, "version": 6200, @@ -1244,7 +1244,7 @@ "tag": "req 63@6300", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 630000, "item": 63, "version": 6300, @@ -1264,7 +1264,7 @@ "tag": "req 64@6400", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 640000, "item": 64, "version": 6400, @@ -1284,7 +1284,7 @@ "tag": "req 65@6500", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 650000, "item": 65, "version": 6500, @@ -1304,7 +1304,7 @@ "tag": "req 66@6600", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 660000, "item": 66, "version": 6600, @@ -1324,7 +1324,7 @@ "tag": "req 67@6700", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 670000, "item": 67, "version": 6700, @@ -1344,7 +1344,7 @@ "tag": "req 68@6800", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 680000, "item": 68, "version": 6800, @@ -1364,7 +1364,7 @@ "tag": "req 69@6900", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 690000, "item": 69, "version": 6900, @@ -1384,7 +1384,7 @@ "tag": "req 70@7000", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 700000, "item": 70, "version": 7000, @@ -1404,7 +1404,7 @@ "tag": "req 71@7100", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 710000, "item": 71, "version": 7100, @@ -1424,7 +1424,7 @@ "tag": "req 72@7200", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 720000, "item": 72, "version": 7200, @@ -1444,7 +1444,7 @@ "tag": "req 73@7300", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 730000, "item": 73, "version": 7300, @@ -1464,7 +1464,7 @@ "tag": "req 74@7400", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 740000, "item": 74, "version": 7400, diff --git a/tests_system/lobster_codebeamer/data/75_items.lobster b/tests_system/lobster_codebeamer/data/75_items.lobster index 40cb385b6..cc96c396f 100644 --- a/tests_system/lobster_codebeamer/data/75_items.lobster +++ b/tests_system/lobster_codebeamer/data/75_items.lobster @@ -4,7 +4,7 @@ "tag": "req 1@100", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 10000, "item": 1, "version": 100, @@ -24,7 +24,7 @@ "tag": "req 2@200", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 20000, "item": 2, "version": 200, @@ -44,7 +44,7 @@ "tag": "req 3@300", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 30000, "item": 3, "version": 300, @@ -64,7 +64,7 @@ "tag": "req 4@400", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 40000, "item": 4, "version": 400, @@ -84,7 +84,7 @@ "tag": "req 5@500", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 50000, "item": 5, "version": 500, @@ -104,7 +104,7 @@ "tag": "req 6@600", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 60000, "item": 6, "version": 600, @@ -124,7 +124,7 @@ "tag": "req 7@700", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 70000, "item": 7, "version": 700, @@ -144,7 +144,7 @@ "tag": "req 8@800", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 80000, "item": 8, "version": 800, @@ -164,7 +164,7 @@ "tag": "req 9@900", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 90000, "item": 9, "version": 900, @@ -184,7 +184,7 @@ "tag": "req 10@1000", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 100000, "item": 10, "version": 1000, @@ -204,7 +204,7 @@ "tag": "req 11@1100", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 110000, "item": 11, "version": 1100, @@ -224,7 +224,7 @@ "tag": "req 12@1200", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 120000, "item": 12, "version": 1200, @@ -244,7 +244,7 @@ "tag": "req 13@1300", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 130000, "item": 13, "version": 1300, @@ -264,7 +264,7 @@ "tag": "req 14@1400", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 140000, "item": 14, "version": 1400, @@ -284,7 +284,7 @@ "tag": "req 15@1500", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 150000, "item": 15, "version": 1500, @@ -304,7 +304,7 @@ "tag": "req 16@1600", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 160000, "item": 16, "version": 1600, @@ -324,7 +324,7 @@ "tag": "req 17@1700", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 170000, "item": 17, "version": 1700, @@ -344,7 +344,7 @@ "tag": "req 18@1800", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 180000, "item": 18, "version": 1800, @@ -364,7 +364,7 @@ "tag": "req 19@1900", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 190000, "item": 19, "version": 1900, @@ -384,7 +384,7 @@ "tag": "req 20@2000", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 200000, "item": 20, "version": 2000, @@ -404,7 +404,7 @@ "tag": "req 21@2100", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 210000, "item": 21, "version": 2100, @@ -424,7 +424,7 @@ "tag": "req 22@2200", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 220000, "item": 22, "version": 2200, @@ -444,7 +444,7 @@ "tag": "req 23@2300", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 230000, "item": 23, "version": 2300, @@ -464,7 +464,7 @@ "tag": "req 24@2400", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 240000, "item": 24, "version": 2400, @@ -484,7 +484,7 @@ "tag": "req 25@2500", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 250000, "item": 25, "version": 2500, @@ -504,7 +504,7 @@ "tag": "req 26@2600", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 260000, "item": 26, "version": 2600, @@ -524,7 +524,7 @@ "tag": "req 27@2700", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 270000, "item": 27, "version": 2700, @@ -544,7 +544,7 @@ "tag": "req 28@2800", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 280000, "item": 28, "version": 2800, @@ -564,7 +564,7 @@ "tag": "req 29@2900", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 290000, "item": 29, "version": 2900, @@ -584,7 +584,7 @@ "tag": "req 30@3000", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 300000, "item": 30, "version": 3000, @@ -604,7 +604,7 @@ "tag": "req 31@3100", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 310000, "item": 31, "version": 3100, @@ -624,7 +624,7 @@ "tag": "req 32@3200", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 320000, "item": 32, "version": 3200, @@ -644,7 +644,7 @@ "tag": "req 33@3300", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 330000, "item": 33, "version": 3300, @@ -664,7 +664,7 @@ "tag": "req 34@3400", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 340000, "item": 34, "version": 3400, @@ -684,7 +684,7 @@ "tag": "req 35@3500", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 350000, "item": 35, "version": 3500, @@ -704,7 +704,7 @@ "tag": "req 36@3600", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 360000, "item": 36, "version": 3600, @@ -724,7 +724,7 @@ "tag": "req 37@3700", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 370000, "item": 37, "version": 3700, @@ -744,7 +744,7 @@ "tag": "req 38@3800", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 380000, "item": 38, "version": 3800, @@ -764,7 +764,7 @@ "tag": "req 39@3900", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 390000, "item": 39, "version": 3900, @@ -784,7 +784,7 @@ "tag": "req 40@4000", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 400000, "item": 40, "version": 4000, @@ -804,7 +804,7 @@ "tag": "req 41@4100", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 410000, "item": 41, "version": 4100, @@ -824,7 +824,7 @@ "tag": "req 42@4200", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 420000, "item": 42, "version": 4200, @@ -844,7 +844,7 @@ "tag": "req 43@4300", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 430000, "item": 43, "version": 4300, @@ -864,7 +864,7 @@ "tag": "req 44@4400", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 440000, "item": 44, "version": 4400, @@ -884,7 +884,7 @@ "tag": "req 45@4500", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 450000, "item": 45, "version": 4500, @@ -904,7 +904,7 @@ "tag": "req 46@4600", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 460000, "item": 46, "version": 4600, @@ -924,7 +924,7 @@ "tag": "req 47@4700", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 470000, "item": 47, "version": 4700, @@ -944,7 +944,7 @@ "tag": "req 48@4800", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 480000, "item": 48, "version": 4800, @@ -964,7 +964,7 @@ "tag": "req 49@4900", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 490000, "item": 49, "version": 4900, @@ -984,7 +984,7 @@ "tag": "req 50@5000", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 500000, "item": 50, "version": 5000, @@ -1004,7 +1004,7 @@ "tag": "req 51@5100", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 510000, "item": 51, "version": 5100, @@ -1024,7 +1024,7 @@ "tag": "req 52@5200", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 520000, "item": 52, "version": 5200, @@ -1044,7 +1044,7 @@ "tag": "req 53@5300", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 530000, "item": 53, "version": 5300, @@ -1064,7 +1064,7 @@ "tag": "req 54@5400", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 540000, "item": 54, "version": 5400, @@ -1084,7 +1084,7 @@ "tag": "req 55@5500", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 550000, "item": 55, "version": 5500, @@ -1104,7 +1104,7 @@ "tag": "req 56@5600", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 560000, "item": 56, "version": 5600, @@ -1124,7 +1124,7 @@ "tag": "req 57@5700", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 570000, "item": 57, "version": 5700, @@ -1144,7 +1144,7 @@ "tag": "req 58@5800", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 580000, "item": 58, "version": 5800, @@ -1164,7 +1164,7 @@ "tag": "req 59@5900", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 590000, "item": 59, "version": 5900, @@ -1184,7 +1184,7 @@ "tag": "req 60@6000", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 600000, "item": 60, "version": 6000, @@ -1204,7 +1204,7 @@ "tag": "req 61@6100", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 610000, "item": 61, "version": 6100, @@ -1224,7 +1224,7 @@ "tag": "req 62@6200", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 620000, "item": 62, "version": 6200, @@ -1244,7 +1244,7 @@ "tag": "req 63@6300", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 630000, "item": 63, "version": 6300, @@ -1264,7 +1264,7 @@ "tag": "req 64@6400", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 640000, "item": 64, "version": 6400, @@ -1284,7 +1284,7 @@ "tag": "req 65@6500", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 650000, "item": 65, "version": 6500, @@ -1304,7 +1304,7 @@ "tag": "req 66@6600", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 660000, "item": 66, "version": 6600, @@ -1324,7 +1324,7 @@ "tag": "req 67@6700", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 670000, "item": 67, "version": 6700, @@ -1344,7 +1344,7 @@ "tag": "req 68@6800", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 680000, "item": 68, "version": 6800, @@ -1364,7 +1364,7 @@ "tag": "req 69@6900", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 690000, "item": 69, "version": 6900, @@ -1384,7 +1384,7 @@ "tag": "req 70@7000", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 700000, "item": 70, "version": 7000, @@ -1404,7 +1404,7 @@ "tag": "req 71@7100", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 710000, "item": 71, "version": 7100, @@ -1424,7 +1424,7 @@ "tag": "req 72@7200", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 720000, "item": 72, "version": 7200, @@ -1444,7 +1444,7 @@ "tag": "req 73@7300", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 730000, "item": 73, "version": 7300, @@ -1464,7 +1464,7 @@ "tag": "req 74@7400", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 740000, "item": 74, "version": 7400, @@ -1484,7 +1484,7 @@ "tag": "req 75@7500", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 750000, "item": 75, "version": 7500, diff --git a/tests_system/lobster_codebeamer/data/76_items.lobster b/tests_system/lobster_codebeamer/data/76_items.lobster index b50389a2e..fccd011f8 100644 --- a/tests_system/lobster_codebeamer/data/76_items.lobster +++ b/tests_system/lobster_codebeamer/data/76_items.lobster @@ -4,7 +4,7 @@ "tag": "req 1@100", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 10000, "item": 1, "version": 100, @@ -24,7 +24,7 @@ "tag": "req 2@200", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 20000, "item": 2, "version": 200, @@ -44,7 +44,7 @@ "tag": "req 3@300", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 30000, "item": 3, "version": 300, @@ -64,7 +64,7 @@ "tag": "req 4@400", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 40000, "item": 4, "version": 400, @@ -84,7 +84,7 @@ "tag": "req 5@500", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 50000, "item": 5, "version": 500, @@ -104,7 +104,7 @@ "tag": "req 6@600", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 60000, "item": 6, "version": 600, @@ -124,7 +124,7 @@ "tag": "req 7@700", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 70000, "item": 7, "version": 700, @@ -144,7 +144,7 @@ "tag": "req 8@800", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 80000, "item": 8, "version": 800, @@ -164,7 +164,7 @@ "tag": "req 9@900", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 90000, "item": 9, "version": 900, @@ -184,7 +184,7 @@ "tag": "req 10@1000", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 100000, "item": 10, "version": 1000, @@ -204,7 +204,7 @@ "tag": "req 11@1100", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 110000, "item": 11, "version": 1100, @@ -224,7 +224,7 @@ "tag": "req 12@1200", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 120000, "item": 12, "version": 1200, @@ -244,7 +244,7 @@ "tag": "req 13@1300", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 130000, "item": 13, "version": 1300, @@ -264,7 +264,7 @@ "tag": "req 14@1400", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 140000, "item": 14, "version": 1400, @@ -284,7 +284,7 @@ "tag": "req 15@1500", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 150000, "item": 15, "version": 1500, @@ -304,7 +304,7 @@ "tag": "req 16@1600", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 160000, "item": 16, "version": 1600, @@ -324,7 +324,7 @@ "tag": "req 17@1700", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 170000, "item": 17, "version": 1700, @@ -344,7 +344,7 @@ "tag": "req 18@1800", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 180000, "item": 18, "version": 1800, @@ -364,7 +364,7 @@ "tag": "req 19@1900", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 190000, "item": 19, "version": 1900, @@ -384,7 +384,7 @@ "tag": "req 20@2000", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 200000, "item": 20, "version": 2000, @@ -404,7 +404,7 @@ "tag": "req 21@2100", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 210000, "item": 21, "version": 2100, @@ -424,7 +424,7 @@ "tag": "req 22@2200", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 220000, "item": 22, "version": 2200, @@ -444,7 +444,7 @@ "tag": "req 23@2300", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 230000, "item": 23, "version": 2300, @@ -464,7 +464,7 @@ "tag": "req 24@2400", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 240000, "item": 24, "version": 2400, @@ -484,7 +484,7 @@ "tag": "req 25@2500", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 250000, "item": 25, "version": 2500, @@ -504,7 +504,7 @@ "tag": "req 26@2600", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 260000, "item": 26, "version": 2600, @@ -524,7 +524,7 @@ "tag": "req 27@2700", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 270000, "item": 27, "version": 2700, @@ -544,7 +544,7 @@ "tag": "req 28@2800", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 280000, "item": 28, "version": 2800, @@ -564,7 +564,7 @@ "tag": "req 29@2900", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 290000, "item": 29, "version": 2900, @@ -584,7 +584,7 @@ "tag": "req 30@3000", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 300000, "item": 30, "version": 3000, @@ -604,7 +604,7 @@ "tag": "req 31@3100", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 310000, "item": 31, "version": 3100, @@ -624,7 +624,7 @@ "tag": "req 32@3200", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 320000, "item": 32, "version": 3200, @@ -644,7 +644,7 @@ "tag": "req 33@3300", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 330000, "item": 33, "version": 3300, @@ -664,7 +664,7 @@ "tag": "req 34@3400", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 340000, "item": 34, "version": 3400, @@ -684,7 +684,7 @@ "tag": "req 35@3500", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 350000, "item": 35, "version": 3500, @@ -704,7 +704,7 @@ "tag": "req 36@3600", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 360000, "item": 36, "version": 3600, @@ -724,7 +724,7 @@ "tag": "req 37@3700", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 370000, "item": 37, "version": 3700, @@ -744,7 +744,7 @@ "tag": "req 38@3800", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 380000, "item": 38, "version": 3800, @@ -764,7 +764,7 @@ "tag": "req 39@3900", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 390000, "item": 39, "version": 3900, @@ -784,7 +784,7 @@ "tag": "req 40@4000", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 400000, "item": 40, "version": 4000, @@ -804,7 +804,7 @@ "tag": "req 41@4100", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 410000, "item": 41, "version": 4100, @@ -824,7 +824,7 @@ "tag": "req 42@4200", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 420000, "item": 42, "version": 4200, @@ -844,7 +844,7 @@ "tag": "req 43@4300", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 430000, "item": 43, "version": 4300, @@ -864,7 +864,7 @@ "tag": "req 44@4400", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 440000, "item": 44, "version": 4400, @@ -884,7 +884,7 @@ "tag": "req 45@4500", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 450000, "item": 45, "version": 4500, @@ -904,7 +904,7 @@ "tag": "req 46@4600", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 460000, "item": 46, "version": 4600, @@ -924,7 +924,7 @@ "tag": "req 47@4700", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 470000, "item": 47, "version": 4700, @@ -944,7 +944,7 @@ "tag": "req 48@4800", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 480000, "item": 48, "version": 4800, @@ -964,7 +964,7 @@ "tag": "req 49@4900", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 490000, "item": 49, "version": 4900, @@ -984,7 +984,7 @@ "tag": "req 50@5000", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 500000, "item": 50, "version": 5000, @@ -1004,7 +1004,7 @@ "tag": "req 51@5100", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 510000, "item": 51, "version": 5100, @@ -1024,7 +1024,7 @@ "tag": "req 52@5200", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 520000, "item": 52, "version": 5200, @@ -1044,7 +1044,7 @@ "tag": "req 53@5300", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 530000, "item": 53, "version": 5300, @@ -1064,7 +1064,7 @@ "tag": "req 54@5400", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 540000, "item": 54, "version": 5400, @@ -1084,7 +1084,7 @@ "tag": "req 55@5500", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 550000, "item": 55, "version": 5500, @@ -1104,7 +1104,7 @@ "tag": "req 56@5600", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 560000, "item": 56, "version": 5600, @@ -1124,7 +1124,7 @@ "tag": "req 57@5700", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 570000, "item": 57, "version": 5700, @@ -1144,7 +1144,7 @@ "tag": "req 58@5800", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 580000, "item": 58, "version": 5800, @@ -1164,7 +1164,7 @@ "tag": "req 59@5900", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 590000, "item": 59, "version": 5900, @@ -1184,7 +1184,7 @@ "tag": "req 60@6000", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 600000, "item": 60, "version": 6000, @@ -1204,7 +1204,7 @@ "tag": "req 61@6100", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 610000, "item": 61, "version": 6100, @@ -1224,7 +1224,7 @@ "tag": "req 62@6200", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 620000, "item": 62, "version": 6200, @@ -1244,7 +1244,7 @@ "tag": "req 63@6300", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 630000, "item": 63, "version": 6300, @@ -1264,7 +1264,7 @@ "tag": "req 64@6400", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 640000, "item": 64, "version": 6400, @@ -1284,7 +1284,7 @@ "tag": "req 65@6500", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 650000, "item": 65, "version": 6500, @@ -1304,7 +1304,7 @@ "tag": "req 66@6600", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 660000, "item": 66, "version": 6600, @@ -1324,7 +1324,7 @@ "tag": "req 67@6700", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 670000, "item": 67, "version": 6700, @@ -1344,7 +1344,7 @@ "tag": "req 68@6800", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 680000, "item": 68, "version": 6800, @@ -1364,7 +1364,7 @@ "tag": "req 69@6900", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 690000, "item": 69, "version": 6900, @@ -1384,7 +1384,7 @@ "tag": "req 70@7000", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 700000, "item": 70, "version": 7000, @@ -1404,7 +1404,7 @@ "tag": "req 71@7100", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 710000, "item": 71, "version": 7100, @@ -1424,7 +1424,7 @@ "tag": "req 72@7200", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 720000, "item": 72, "version": 7200, @@ -1444,7 +1444,7 @@ "tag": "req 73@7300", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 730000, "item": 73, "version": 7300, @@ -1464,7 +1464,7 @@ "tag": "req 74@7400", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 740000, "item": 74, "version": 7400, @@ -1484,7 +1484,7 @@ "tag": "req 75@7500", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 750000, "item": 75, "version": 7500, @@ -1504,7 +1504,7 @@ "tag": "req 76@7600", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 760000, "item": 76, "version": 7600, diff --git a/tests_system/lobster_codebeamer/data/9_items.lobster b/tests_system/lobster_codebeamer/data/9_items.lobster index c12b00a8f..78ecb509d 100644 --- a/tests_system/lobster_codebeamer/data/9_items.lobster +++ b/tests_system/lobster_codebeamer/data/9_items.lobster @@ -4,7 +4,7 @@ "tag": "req 1@100", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 10000, "item": 1, "version": 100, @@ -24,7 +24,7 @@ "tag": "req 2@200", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 20000, "item": 2, "version": 200, @@ -44,7 +44,7 @@ "tag": "req 3@300", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 30000, "item": 3, "version": 300, @@ -64,7 +64,7 @@ "tag": "req 4@400", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 40000, "item": 4, "version": 400, @@ -84,7 +84,7 @@ "tag": "req 5@500", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 50000, "item": 5, "version": 500, @@ -104,7 +104,7 @@ "tag": "req 6@600", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 60000, "item": 6, "version": 600, @@ -124,7 +124,7 @@ "tag": "req 7@700", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 70000, "item": 7, "version": 700, @@ -144,7 +144,7 @@ "tag": "req 8@800", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 80000, "item": 8, "version": 800, @@ -164,7 +164,7 @@ "tag": "req 9@900", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 90000, "item": 9, "version": 900, diff --git a/tests_system/lobster_codebeamer/data/codebeamer.lobster b/tests_system/lobster_codebeamer/data/codebeamer.lobster index 61f5c12a1..08874dc2c 100644 --- a/tests_system/lobster_codebeamer/data/codebeamer.lobster +++ b/tests_system/lobster_codebeamer/data/codebeamer.lobster @@ -4,7 +4,7 @@ "tag": "req 5@1", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 5, "item": 5, "version": 1, diff --git a/tests_system/lobster_codebeamer/data/refs_tracing_tag.lobster b/tests_system/lobster_codebeamer/data/refs_tracing_tag.lobster index 0183d2fa5..75abd87ac 100644 --- a/tests_system/lobster_codebeamer/data/refs_tracing_tag.lobster +++ b/tests_system/lobster_codebeamer/data/refs_tracing_tag.lobster @@ -4,7 +4,7 @@ "tag": "req 42@1", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 5, "item": 42, "version": 1, diff --git a/tests_system/lobster_codebeamer/data/test_references.lobster b/tests_system/lobster_codebeamer/data/test_references.lobster index 0183d2fa5..75abd87ac 100644 --- a/tests_system/lobster_codebeamer/data/test_references.lobster +++ b/tests_system/lobster_codebeamer/data/test_references.lobster @@ -4,7 +4,7 @@ "tag": "req 42@1", "location": { "kind": "codebeamer", - "cb_root": "https://localhost:8999", + "cb_root": "https://localhost:MOCK_SERVER_PORT", "tracker": 5, "item": 42, "version": 1, diff --git a/tests_system/lobster_codebeamer/lobster_codebeamer_asserter.py b/tests_system/lobster_codebeamer/lobster_codebeamer_asserter.py index 01b6bc919..82e037493 100644 --- a/tests_system/lobster_codebeamer/lobster_codebeamer_asserter.py +++ b/tests_system/lobster_codebeamer/lobster_codebeamer_asserter.py @@ -1,15 +1,34 @@ import math from typing import Optional -from tests_system.asserter import Asserter +from tests_system.asserter import Asserter, is_valid_json, sort_json +from pathlib import Path class LobsterCodebeamerAsserter(Asserter): + def __init__(self, system_test_case, completed_process, test_runner, + port: int = 8999): + super().__init__(system_test_case, completed_process, test_runner) + self._port = port + + def apply_replacements(self, content: str) -> str: + """ + Override to add MOCK_SERVER_PORT replacement in addition to base replacements. + """ + # First apply parent replacements (CURRENT_WORKING_DIRECTORY) + content = super().apply_replacements(content) + # Then add codebeamer-specific replacement (MOCK_SERVER_PORT) + return content.replace( + "MOCK_SERVER_PORT", + str(self._port), + ) + def assertStdOutNumAndFile( self, num_items: int, page_size: int, out_file: str = "codebeamer.lobster", import_query: Optional[int] = None, + port: int = 8999, ): if num_items == 0: if import_query is None: @@ -21,7 +40,7 @@ def assertStdOutNumAndFile( f"This query doesn't generate items. Please check:\n" f" * is the number actually correct?\n" f" * do you have permissions to access it?\n" - f"You can try to access 'https://localhost:8999/api/v3/reports" + f"You can try to access 'https://localhost:{port}/api/v3/reports" f"/{import_query}/items?page=1&pageSize={page_size}' manually to " f"check.\n" f"Written 0 requirements to {out_file}\n" @@ -32,7 +51,7 @@ def assertStdOutNumAndFile( f"This query doesn't generate items. Please check:\n" f" * is the number actually correct?\n" f" * do you have permissions to access it?\n" - f"You can try to access 'https://localhost:8999/api/v3/items" + f"You can try to access 'https://localhost:{port}/api/v3/items" f"/query?page=1&pageSize={page_size}&queryString={import_query}' " f"manually to check.\n" f"Written 0 requirements to {out_file}\n" diff --git a/tests_system/lobster_codebeamer/lobster_codebeamer_test_runner.py b/tests_system/lobster_codebeamer/lobster_codebeamer_test_runner.py index 703fc8e02..b12226258 100644 --- a/tests_system/lobster_codebeamer/lobster_codebeamer_test_runner.py +++ b/tests_system/lobster_codebeamer/lobster_codebeamer_test_runner.py @@ -2,7 +2,6 @@ from pathlib import Path from typing import List, Optional, Union import yaml -from tests_system.lobster_codebeamer.mock_server import PORT from tests_system.testrunner import TestRunResult, TestRunner from lobster.tools.codebeamer.codebeamer import main @@ -18,8 +17,8 @@ class ConfigFileData: num_request_retry: Optional[int] = None retry_error_codes: Optional[List[int]] = None - def set_default_root_token_out(self): - self.root = f"https://localhost:{PORT}" + def set_default_root_token_out(self, port: int): + self.root = f"https://localhost:{port}" self.token = "abcdef1234567890" self.out = "codebeamer.lobster" diff --git a/tests_system/lobster_codebeamer/mock_server.py b/tests_system/lobster_codebeamer/mock_server.py index cc449e1e2..3a0e3fb35 100644 --- a/tests_system/lobster_codebeamer/mock_server.py +++ b/tests_system/lobster_codebeamer/mock_server.py @@ -1,4 +1,5 @@ import json +import socket from time import sleep from typing import List from flask import Flask, Response, request @@ -24,13 +25,30 @@ class CodebeamerFlask(Flask): STARTUP_ANSWER = "Yes, I am running!" _HOST = "127.0.0.1" - _STARTUP_TEST_URL = f"https://{_HOST}:{PORT}{ARE_YOU_RUNNING_ROUTE}" - def __init__(self): + def __init__(self, port: int = 0): super().__init__(__name__) self._lock = Lock() self._responses = [] self._received_requests = [] + self._port = port if port != 0 else self._get_free_port() + self._STARTUP_TEST_URL = ( + f"https://{self._HOST}:{self._port}{ARE_YOU_RUNNING_ROUTE}" + ) + + @staticmethod + def _get_free_port() -> int: + """Get a free port by binding to port 0 and letting the OS assign one.""" + with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s: + s.bind(('', 0)) + s.listen(1) + port = s.getsockname()[1] + return port + + @property + def port(self) -> int: + """Return the port this server is running on.""" + return self._port def reset(self): """Reset the server state.""" @@ -63,7 +81,7 @@ def responses(self, value: List): def start_server(self): self.run( host=self._HOST, - port=PORT, + port=self._port, ssl_context=(CERT_PATH, KEY_PATH), use_reloader=False ) @@ -141,8 +159,8 @@ def store_received_request(app: CodebeamerFlask): }) -def create_app(): - app = CodebeamerFlask() +def create_app(port: int = 0): + app = CodebeamerFlask(port=port) @app.route(MOCK_ROUTE_QUERY_ID, methods=['GET']) def mock_query_id_response(report_id): diff --git a/tests_system/lobster_codebeamer/mock_server_setup.py b/tests_system/lobster_codebeamer/mock_server_setup.py index a267313be..15be150a5 100644 --- a/tests_system/lobster_codebeamer/mock_server_setup.py +++ b/tests_system/lobster_codebeamer/mock_server_setup.py @@ -12,7 +12,7 @@ def _start_mock_server() -> CodebeamerFlask: if codebeamer_flask: return codebeamer_flask - codebeamer_flask = create_app() + codebeamer_flask = create_app(port=0) # Use dynamic port allocation mock_server_thread = threading.Thread( target=codebeamer_flask.start_server, daemon=True diff --git a/tests_system/lobster_codebeamer/test_extract_requirements.py b/tests_system/lobster_codebeamer/test_extract_requirements.py index d4efd6569..e784bafa3 100644 --- a/tests_system/lobster_codebeamer/test_extract_requirements.py +++ b/tests_system/lobster_codebeamer/test_extract_requirements.py @@ -65,15 +65,18 @@ def extract_requirements(self, self.assertEqual(actual_url, f"{expected_url}".format(cfg=cfg, i=i)) self.assertEqual(request['method'], 'GET') - asserter = LobsterCodebeamerAsserter(self, - completed_process, - self._test_runner, - ) + asserter = LobsterCodebeamerAsserter( + self, + completed_process, + self._test_runner, + port=self.codebeamer_flask.port, + ) asserter.assertStdOutNumAndFile( num_items=total_items, out_file=self._test_runner.config_file_data.out, page_size=cfg.page_size, import_query=cfg.import_query, + port=self.codebeamer_flask.port, ) asserter.assertExitCode(0) asserter.assertOutputFiles() @@ -85,7 +88,7 @@ def test_extract_requirements_query_id_scenarios(self): # lobster-trace: UseCases.Incorrect_Number_of_Codebeamer_Items_in_Output cfg = self._test_runner.config_file_data - cfg.set_default_root_token_out() + cfg.set_default_root_token_out(self.codebeamer_flask.port) cfg.import_query = 54321 cfg.page_size = 5 @@ -103,7 +106,7 @@ def test_extract_requirements_query_string_scenarios(self): # lobster-trace: UseCases.Incorrect_Number_of_Codebeamer_Items_in_Output cfg = self._test_runner.config_file_data - cfg.set_default_root_token_out() + cfg.set_default_root_token_out(self.codebeamer_flask.port) cfg.import_query = "projectId%3D10" cfg.page_size = 5 diff --git a/tests_system/lobster_codebeamer/test_lobster_codebeamer.py b/tests_system/lobster_codebeamer/test_lobster_codebeamer.py index ec893646a..980deb350 100644 --- a/tests_system/lobster_codebeamer/test_lobster_codebeamer.py +++ b/tests_system/lobster_codebeamer/test_lobster_codebeamer.py @@ -4,6 +4,8 @@ from tests_system.lobster_codebeamer.lobster_codebeamer_system_test_case_base import ( LobsterCodebeamerSystemTestCaseBase) from tests_system.asserter import Asserter +from tests_system.lobster_codebeamer.lobster_codebeamer_asserter import ( + LobsterCodebeamerAsserter) from tests_system.lobster_codebeamer.mock_server_setup import get_mock_app @@ -28,7 +30,7 @@ def test_retry_if_configured(self): self.codebeamer_flask.responses = [Response(status=429)] * 3 cfg = self._test_runner.config_file_data - cfg.set_default_root_token_out() + cfg.set_default_root_token_out(self.codebeamer_flask.port) cfg.retry_error_codes = [429] cfg.num_request_retry = 2 cfg.import_query = 999 @@ -82,7 +84,7 @@ def test_retry_then_success(self): Response(json.dumps(response_data), status=200), ] cfg = self._test_runner.config_file_data - cfg.set_default_root_token_out() + cfg.set_default_root_token_out(self.codebeamer_flask.port) cfg.retry_error_codes = [429] cfg.num_request_retry = 2 cfg.import_query = 123123123123123123 @@ -90,7 +92,12 @@ def test_retry_then_success(self): self._data_directory / self._test_runner.config_file_data.out) completed_process = self._test_runner.run_tool_test() - asserter = Asserter(self, completed_process, self._test_runner) + asserter = LobsterCodebeamerAsserter( + self, + completed_process, + self._test_runner, + port=self.codebeamer_flask.port, + ) self.assertIn( "Written 1 requirements to codebeamer.lobster\n", completed_process.stdout, @@ -103,7 +110,7 @@ def test_no_retry_if_not_configured(self): # lobster-trace: codebeamer_req.Missing_Error_Code self.codebeamer_flask.responses = [Response(status=429)] cfg = self._test_runner.config_file_data - cfg.set_default_root_token_out() + cfg.set_default_root_token_out(self.codebeamer_flask.port) cfg.import_query = 1111 completed_process = self._test_runner.run_tool_test() diff --git a/tests_system/lobster_codebeamer/test_valid_flow.py b/tests_system/lobster_codebeamer/test_valid_flow.py index d54ed85fc..b5bd204e4 100644 --- a/tests_system/lobster_codebeamer/test_valid_flow.py +++ b/tests_system/lobster_codebeamer/test_valid_flow.py @@ -24,7 +24,7 @@ def setUp(self): def test_valid_query_id(self): # lobster-trace: codebeamer_req.Query_Id_Parameter cfg = self._test_runner.config_file_data - cfg.set_default_root_token_out() + cfg.set_default_root_token_out(self.codebeamer_flask.port) cfg.import_query = 10203 self._test_runner.declare_output_file( self._data_directory / self._test_runner.config_file_data.out) @@ -60,10 +60,16 @@ def test_valid_query_id(self): ] completed_process = self._test_runner.run_tool_test() - asserter = LobsterCodebeamerAsserter(self, completed_process, self._test_runner) + asserter = LobsterCodebeamerAsserter( + self, + completed_process, + self._test_runner, + port=self.codebeamer_flask.port, + ) asserter.assertStdOutNumAndFile( num_items=len(response_data['items']), page_size=1, + port=self.codebeamer_flask.port, ) asserter.assertExitCode(0) asserter.assertOutputFiles() @@ -71,7 +77,7 @@ def test_valid_query_id(self): def test_references_tracing_tag_added(self): # lobster-trace: codebeamer_req.References_Field_Support cfg = self._test_runner.config_file_data - cfg.set_default_root_token_out() + cfg.set_default_root_token_out(self.codebeamer_flask.port) cfg.import_query = 424242 cfg.out = "refs_tracing_tag.lobster" self._test_runner.declare_output_file( @@ -114,11 +120,17 @@ def test_references_tracing_tag_added(self): ] completed_process = self._test_runner.run_tool_test() - asserter = LobsterCodebeamerAsserter(self, completed_process, self._test_runner) + asserter = LobsterCodebeamerAsserter( + self, + completed_process, + self._test_runner, + port=self.codebeamer_flask.port, + ) asserter.assertStdOutNumAndFile( num_items=len(response_data['items']), page_size=1, out_file=cfg.out, + port=self.codebeamer_flask.port, ) asserter.assertExitCode(0) asserter.assertOutputFiles()