diff --git a/test/test_datasource.py b/test/test_datasource.py index 7f4cca75..56eb11ab 100644 --- a/test/test_datasource.py +++ b/test/test_datasource.py @@ -895,7 +895,8 @@ def test_publish_description(server: TSC.Server) -> None: ds_elem = body.find(".//datasource") assert ds_elem is not None assert ds_elem.attrib["description"] == "Sample description" - + + def test_get_datasource_no_owner(server: TSC.Server) -> None: with requests_mock.mock() as m: m.get(server.datasources.baseurl, text=GET_NO_OWNER.read_text()) diff --git a/test/test_regression_tests.py b/test/test_regression_tests.py index 62e30159..21fbf384 100644 --- a/test/test_regression_tests.py +++ b/test/test_regression_tests.py @@ -1,4 +1,3 @@ -import unittest from unittest import mock import tableauserverclient.server.request_factory as factory @@ -6,78 +5,80 @@ from tableauserverclient.filesys_helpers import to_filename, make_download_path -class BugFix257(unittest.TestCase): - def test_empty_request_works(self): - result = factory.EmptyRequest().empty_req() - self.assertEqual(b"", result) - - -class FileSysHelpers(unittest.TestCase): - def test_to_filename(self): - invalid = [ - "23brhafbjrjhkbbea.txt", - "a_b_C.txt", - "windows space.txt", - "abc#def.txt", - "t@bL3A()", - ] - - valid = [ - "23brhafbjrjhkbbea.txt", - "a_b_C.txt", - "windows space.txt", - "abcdef.txt", - "tbL3A", - ] - - self.assertTrue(all([(to_filename(i) == v) for i, v in zip(invalid, valid)])) - - def test_make_download_path(self): - no_file_path = (None, "file.ext") - has_file_path_folder = ("/root/folder/", "file.ext") - has_file_path_file = ("outx", "file.ext") - - self.assertEqual("file.ext", make_download_path(*no_file_path)) - self.assertEqual("outx.ext", make_download_path(*has_file_path_file)) - - with mock.patch("os.path.isdir") as mocked_isdir: - mocked_isdir.return_value = True - self.assertEqual("/root/folder/file.ext", make_download_path(*has_file_path_folder)) - - -class LoggingTest(unittest.TestCase): - def test_redact_password_string(self): - redacted = redact_xml( - "this is password: my_super_secret_passphrase_which_nobody_should_ever_see password: value" - ) - assert redacted.find("value") == -1 - assert redacted.find("secret") == -1 - assert redacted.find("ever_see") == -1 - assert redacted.find("my_super_secret_passphrase_which_nobody_should_ever_see") == -1 - - def test_redact_password_bytes(self): - redacted = redact_xml( - b"" - ) - assert redacted.find(b"value") == -1 - assert redacted.find(b"secret") == -1 - - def test_redact_password_with_special_char(self): - redacted = redact_xml( - " " - ) - assert redacted.find("my_s per_secre>_passphrase_which_nobody_should_ever_see with password: value") == -1 - - def test_redact_password_not_xml(self): - redacted = redact_xml( - " " - ) - assert redacted.find("my_s per_secre>_passphrase_which_nobody_should_ever_see") == -1 - - def test_redact_password_really_not_xml(self): - redacted = redact_xml( - "value='this is a nondescript text line which is public' password='my_s per_secre>_passphrase_which_nobody_should_ever_see with password: value and then a cookie " - ) - assert redacted.find("my_s per_secre>_passphrase_which_nobody_should_ever_see") == -1 - assert redacted.find("passphrase") == -1, redacted - assert redacted.find("cookie") == -1, redacted +def test_empty_request_works(): + result = factory.EmptyRequest().empty_req() + assert b"" == result + + +def test_to_filename(): + invalid = [ + "23brhafbjrjhkbbea.txt", + "a_b_C.txt", + "windows space.txt", + "abc#def.txt", + "t@bL3A()", + ] + + valid = [ + "23brhafbjrjhkbbea.txt", + "a_b_C.txt", + "windows space.txt", + "abcdef.txt", + "tbL3A", + ] + + assert all([(to_filename(i) == v) for i, v in zip(invalid, valid)]) + + +def test_make_download_path(): + no_file_path = (None, "file.ext") + has_file_path_folder = ("/root/folder/", "file.ext") + has_file_path_file = ("outx", "file.ext") + + assert "file.ext" == make_download_path(*no_file_path) + assert "outx.ext" == make_download_path(*has_file_path_file) + + with mock.patch("os.path.isdir") as mocked_isdir: + mocked_isdir.return_value = True + assert "/root/folder/file.ext" == make_download_path(*has_file_path_folder) + + +def test_redact_password_string(): + redacted = redact_xml( + "this is password: my_super_secret_passphrase_which_nobody_should_ever_see password: value" + ) + assert redacted.find("value") == -1 + assert redacted.find("secret") == -1 + assert redacted.find("ever_see") == -1 + assert redacted.find("my_super_secret_passphrase_which_nobody_should_ever_see") == -1 + + +def test_redact_password_bytes(): + redacted = redact_xml( + b"" + ) + assert redacted.find(b"value") == -1 + assert redacted.find(b"secret") == -1 + + +def test_redact_password_with_special_char(): + redacted = redact_xml( + " " + ) + assert redacted.find("my_s per_secre>_passphrase_which_nobody_should_ever_see with password: value") == -1 + + +def test_redact_password_not_xml(): + redacted = redact_xml( + " " + ) + assert redacted.find("my_s per_secre>_passphrase_which_nobody_should_ever_see") == -1 + + +def test_redact_password_really_not_xml(): + redacted = redact_xml( + "value='this is a nondescript text line which is public' password='my_s per_secre>_passphrase_which_nobody_should_ever_see with password: value and then a cookie " + ) + assert redacted.find("my_s per_secre>_passphrase_which_nobody_should_ever_see") == -1 + assert redacted.find("passphrase") == -1, redacted + assert redacted.find("cookie") == -1, redacted