From 3c63ebde156d15f7ee0405c13ac8e80667e03482 Mon Sep 17 00:00:00 2001 From: Steve Howell Date: Mon, 13 Dec 2021 12:30:57 +0000 Subject: [PATCH] export tests: Extract ExportFile class. This is just moving code around. --- zerver/tests/test_import_export.py | 79 +++++++++++++++--------------- 1 file changed, 40 insertions(+), 39 deletions(-) diff --git a/zerver/tests/test_import_export.py b/zerver/tests/test_import_export.py index cf8f68aa93..58a0aef2a4 100644 --- a/zerver/tests/test_import_export.py +++ b/zerver/tests/test_import_export.py @@ -127,7 +127,10 @@ def get_huddle_hashes(r: Realm) -> str: return huddle_hash -class RealmImportExportTest(ZulipTestCase): +class ExportFile(ZulipTestCase): + """This class is a container for shared helper functions + used for both the realm-level and user-level export tests.""" + def setUp(self) -> None: super().setUp() self.rm_tree(settings.LOCAL_UPLOADS_DIR) @@ -140,27 +143,6 @@ class RealmImportExportTest(ZulipTestCase): # process would likely result in this being necessary anyway. RealmEmoji.objects.all().delete() - def export_realm( - self, - realm: Realm, - exportable_user_ids: Optional[Set[int]] = None, - consent_message_id: Optional[int] = None, - ) -> None: - output_dir = make_export_output_dir() - with patch("zerver.lib.export.create_soft_link"), self.assertLogs(level="INFO"): - do_export_realm( - realm=realm, - output_dir=output_dir, - threads=0, - exportable_user_ids=exportable_user_ids, - consent_message_id=consent_message_id, - ) - export_usermessages_batch( - input_path=os.path.join(output_dir, "messages-000001.json.partial"), - output_path=os.path.join(output_dir, "messages-000001.json"), - consent_message_id=consent_message_id, - ) - def upload_files_for_user( self, user_profile: UserProfile, *, emoji_name: str = "whatever" ) -> None: @@ -201,23 +183,6 @@ class RealmImportExportTest(ZulipTestCase): upload.upload_backend.upload_realm_logo_image(img_file, user_profile, night=True) do_change_logo_source(realm, Realm.LOGO_UPLOADED, True, acting_user=user_profile) - """ - Tests for export - """ - - def test_export_files_from_local(self) -> None: - user = self.example_user("hamlet") - realm = user.realm - self.upload_files_for_user(user) - self.upload_files_for_realm(user) - self.export_realm(realm) - - self.verify_attachment_json(user) - self.verify_uploads(user, is_s3=False) - self.verify_avatars(user) - self.verify_emojis(user, is_s3=False) - self.verify_realm_logo_and_icon() - def verify_attachment_json(self, user: UserProfile) -> None: attachment = Attachment.objects.get(owner=user) (record,) = read_json("attachment.json")["zerver_attachment"] @@ -332,6 +297,42 @@ class RealmImportExportTest(ZulipTestCase): db_paths = {user_avatar_path(user) + ".original"} self.assertEqual(exported_paths, db_paths) + +class RealmImportExportTest(ExportFile): + def export_realm( + self, + realm: Realm, + exportable_user_ids: Optional[Set[int]] = None, + consent_message_id: Optional[int] = None, + ) -> None: + output_dir = make_export_output_dir() + with patch("zerver.lib.export.create_soft_link"), self.assertLogs(level="INFO"): + do_export_realm( + realm=realm, + output_dir=output_dir, + threads=0, + exportable_user_ids=exportable_user_ids, + consent_message_id=consent_message_id, + ) + export_usermessages_batch( + input_path=os.path.join(output_dir, "messages-000001.json.partial"), + output_path=os.path.join(output_dir, "messages-000001.json"), + consent_message_id=consent_message_id, + ) + + def test_export_files_from_local(self) -> None: + user = self.example_user("hamlet") + realm = user.realm + self.upload_files_for_user(user) + self.upload_files_for_realm(user) + self.export_realm(realm) + + self.verify_attachment_json(user) + self.verify_uploads(user, is_s3=False) + self.verify_avatars(user) + self.verify_emojis(user, is_s3=False) + self.verify_realm_logo_and_icon() + @use_s3_backend def test_export_files_from_s3(self) -> None: create_s3_buckets(settings.S3_AUTH_UPLOADS_BUCKET, settings.S3_AVATAR_BUCKET)