diff --git a/tests/cli_test_case.py b/tests/cli_test_case.py index e3e2561d6..9fe24536a 100644 --- a/tests/cli_test_case.py +++ b/tests/cli_test_case.py @@ -216,6 +216,13 @@ def assert_success(self, result: click.testing.Result): def assert_exit_code(self, result: click.testing.Result, expected: int): self.assertEqual(result.exit_code, expected, result.stdout) + def assert_contents(self, file_path: str, content: str): + with open(file_path) as f: + self.assertEqual(f.read(), content) + + def assert_file_exists(self, file_path: str, exists: bool = True): + self.assertEqual(Path(file_path).exists(), exists) + def find_request(self, url_suffix: str, n: int = 0): '''Find the first (or n-th, if specified) request that matches the given suffix''' for call in responses.calls: diff --git a/tests/commands/test_split_subset.py b/tests/commands/test_split_subset.py index 71114126e..5424f5b82 100644 --- a/tests/commands/test_split_subset.py +++ b/tests/commands/test_split_subset.py @@ -163,24 +163,19 @@ def test_split_by_group_names(self): "--split-by-groups", "--split-by-groups-output-dir", tmpdir, "file") self.assert_success(result) - with open("{}/subset-e2e.txt".format(tmpdir)) as f: - self.assertEqual(f.read(), "e2e-aaa.py\ne2e-bbb.py") + self.assert_contents("{}/subset-e2e.txt".format(tmpdir), "e2e-aaa.py\ne2e-bbb.py") + self.assert_contents("{}/subset-{}.txt".format(tmpdir, SPLIT_BY_GROUPS_NO_GROUP_NAME), "aaa.py\nbbb.py") + # check the group file + self.assert_contents("{}/{}".format(tmpdir, SPLIT_BY_GROUP_SUBSET_GROUPS_FILE_NAME), "e2e") - self.assertFalse(os.path.exists("{}/rest-e2e.txt".format(tmpdir))) + # server doesn't return subset of unit-test + self.assert_file_exists("{}/subset-unit-test.txt".format(tmpdir), False) - self.assertFalse(os.path.exists("{}/subset-unit-test.txt".format(tmpdir))) - - self.assertFalse(os.path.exists("{}/rest-unit-test.txt".format(tmpdir))) - - with open("{}/subset-{}.txt".format(tmpdir, SPLIT_BY_GROUPS_NO_GROUP_NAME)) as f: - self.assertEqual(f.read(), "aaa.py\nbbb.py") - - self.assertFalse(os.path.exists("{}/rest-{}.txt".format(tmpdir, SPLIT_BY_GROUPS_NO_GROUP_NAME))) - - with open("{}/{}".format(tmpdir, SPLIT_BY_GROUP_SUBSET_GROUPS_FILE_NAME)) as f: - self.assertEqual(f.read(), "e2e") - - self.assertFalse(os.path.exists("{}/{}".format(tmpdir, SPLIT_BY_GROUP_REST_GROUPS_FILE_NAME))) + # doesn't set the --rest option + self.assert_file_exists("{}/rest-e2e.txt".format(tmpdir), False) + self.assert_file_exists("{}/rest-unit-test.txt".format(tmpdir), False) + self.assert_file_exists("{}/rest-{}.txt".format(tmpdir, SPLIT_BY_GROUPS_NO_GROUP_NAME), False) + self.assert_file_exists("{}/{}".format(tmpdir, SPLIT_BY_GROUP_REST_GROUPS_FILE_NAME), False) # with rest option with tempfile.TemporaryDirectory() as tmpdir: @@ -193,28 +188,19 @@ def test_split_by_group_names(self): for item in os.listdir(tmpdir): print(item) - with open(os.path.join(tmpdir, "subset-e2e.txt")) as f: - self.assertEqual(f.read(), "e2e-aaa.py\ne2e-bbb.py") - - with open(os.path.join(tmpdir, "rest-e2e.txt")) as f: - self.assertEqual(f.read(), "e2e-ccc.py\ne2e-ddd.py") + self.assert_contents("{}/subset-e2e.txt".format(tmpdir), "e2e-aaa.py\ne2e-bbb.py") + self.assert_contents("{}/rest-e2e.txt".format(tmpdir), "e2e-ccc.py\ne2e-ddd.py") - self.assertFalse(os.path.exists("{}/subset-unit-test.txt".format(tmpdir))) + # server doesn't return subset of unit-test + self.assert_file_exists("{}/subset-unit-test.txt".format(tmpdir), False) + self.assert_contents("{}/rest-unit-test.txt".format(tmpdir), "unit-test-111.py\nunit-test-222.py") - with open(os.path.join(tmpdir, "rest-unit-test.txt")) as f: - self.assertEqual(f.read(), "unit-test-111.py\nunit-test-222.py") + self.assert_contents("{}/subset-{}.txt".format(tmpdir, SPLIT_BY_GROUPS_NO_GROUP_NAME), "aaa.py\nbbb.py") + self.assert_contents("{}/rest-{}.txt".format(tmpdir, SPLIT_BY_GROUPS_NO_GROUP_NAME), "111.py\n222.py") - with open(os.path.join(tmpdir, "subset-{}.txt".format(SPLIT_BY_GROUPS_NO_GROUP_NAME))) as f: - self.assertEqual(f.read(), "aaa.py\nbbb.py") - - with open(os.path.join(tmpdir, "rest-{}.txt".format(SPLIT_BY_GROUPS_NO_GROUP_NAME))) as f: - self.assertEqual(f.read(), "111.py\n222.py") - - with open(os.path.join(tmpdir, SPLIT_BY_GROUP_SUBSET_GROUPS_FILE_NAME)) as f: - self.assertEqual(f.read(), "e2e") - - with open(os.path.join(tmpdir, SPLIT_BY_GROUP_REST_GROUPS_FILE_NAME)) as f: - self.assertEqual(f.read(), "unit-test") + # check the group file + self.assert_contents("{}/{}".format(tmpdir, SPLIT_BY_GROUP_SUBSET_GROUPS_FILE_NAME), "e2e") + self.assert_contents("{}/{}".format(tmpdir, SPLIT_BY_GROUP_REST_GROUPS_FILE_NAME), "unit-test") @responses.activate @mock.patch.dict(os.environ, {"LAUNCHABLE_TOKEN": CliTestCase.launchable_token}) @@ -273,19 +259,15 @@ def test_split_by_group_names_output_exclusion_rules(self): "--split-by-groups", "--split-by-groups-output-dir", tmpdir, '--output-exclusion-rules', "file") self.assert_success(result) - with open("{}/subset-e2e.txt".format(tmpdir)) as f: - self.assertCountEqual(f.read().splitlines(), ["e2e-ccc.py", "e2e-ddd.py", ]) - - self.assertFalse(os.path.exists("{}/rest-e2e.txt".format(tmpdir))) - - with open("{}/subset-unit-test.txt".format(tmpdir)) as f: - self.assertCountEqual(f.read().splitlines(), ["unit-test-111.py", "unit-test-222.py"]) - self.assertFalse(os.path.exists("{}/rest-unit-test.txt".format(tmpdir))) - - with open("{}/subset-{}.txt".format(tmpdir, SPLIT_BY_GROUPS_NO_GROUP_NAME)) as f: - self.assertCountEqual(f.read().splitlines(), ["111.py", "222.py"]) - self.assertFalse(os.path.exists("{}/rest-{}.txt".format(tmpdir, SPLIT_BY_GROUPS_NO_GROUP_NAME))) - with open("{}/{}".format(tmpdir, SPLIT_BY_GROUP_SUBSET_GROUPS_FILE_NAME)) as f: - self.assertEqual(f.read(), "unit-test") - self.assertFalse(os.path.exists("{}/{}".format(tmpdir, SPLIT_BY_GROUP_REST_GROUPS_FILE_NAME))) + # --output-exclusion-rules is enabled, thus switched subset and rest + self.assert_contents("{}/subset-e2e.txt".format(tmpdir), "e2e-ccc.py\ne2e-ddd.py") + self.assert_contents("{}/subset-unit-test.txt".format(tmpdir), "unit-test-111.py\nunit-test-222.py") + self.assert_contents("{}/subset-{}.txt".format(tmpdir, SPLIT_BY_GROUPS_NO_GROUP_NAME), "111.py\n222.py") + self.assert_contents("{}/{}".format(tmpdir, SPLIT_BY_GROUP_SUBSET_GROUPS_FILE_NAME), "unit-test") + + # doesn't set the --rest option + self.assert_file_exists("{}/rest-e2e.txt".format(tmpdir), False) + self.assert_file_exists("{}/rest-unit-test.txt".format(tmpdir), False) + self.assert_file_exists("{}/rest-{}.txt".format(tmpdir, SPLIT_BY_GROUPS_NO_GROUP_NAME), False) + self.assert_file_exists("{}/{}".format(tmpdir, SPLIT_BY_GROUP_REST_GROUPS_FILE_NAME), False)