test_mattermost_importer: Add test coverage.

This is a rebase from a recent revert. A test
was failing non-deterministically relating to
`convert_channel_data` and use of an incorrect
`realm_id`.
This commit is contained in:
Wyatt Hoodes
2019-08-20 16:14:02 -10:00
committed by Tim Abbott
parent a7ec1a089c
commit fc2574fdfd
2 changed files with 23 additions and 1 deletions

View File

@@ -123,7 +123,6 @@ not_yet_fully_covered = {path for target in [
'zerver/tornado/websocket_client.py',
# Data import files; relatively low priority
'zerver/data_import/hipchat*.py',
'zerver/data_import/mattermost.py',
'zerver/data_import/sequencer.py',
'zerver/data_import/slack.py',
'zerver/data_import/gitter.py',

View File

@@ -80,6 +80,11 @@ class MatterMostImporter(ZulipTestCase):
self.assertEqual(user["short_name"], "harry")
self.assertEqual(user["timezone"], "UTC")
# A user with a `null` team value shouldn't be an admin.
harry_dict["teams"] = None
user = process_user(harry_dict, realm_id, team_name, user_id_mapper)
self.assertEqual(user["is_realm_admin"], False)
team_name = "slytherin"
snape_dict = self.username_to_user["snape"]
snape_dict["is_mirror_dummy"] = True
@@ -184,6 +189,21 @@ class MatterMostImporter(ZulipTestCase):
self.assertEqual(subscriber_handler.get_users(stream_id_mapper.get("gryffindor-quidditch-team")), {1, 2})
self.assertEqual(subscriber_handler.get_users(stream_id_mapper.get("dumbledores-army")), {1, 2})
# Converting channel data when a user's `teams` value is `null`.
self.username_to_user["ron"].update({"teams": None})
zerver_stream = convert_channel_data(
channel_data=self.mattermost_data["channel"],
user_data_map=self.username_to_user,
subscriber_handler=subscriber_handler,
stream_id_mapper=stream_id_mapper,
user_id_mapper=user_id_mapper,
realm_id=3,
team_name=team_name,
)
self.assertEqual(subscriber_handler.get_users(stream_id_mapper.get("gryffindor-common-room")), {2})
self.assertEqual(subscriber_handler.get_users(stream_id_mapper.get("gryffindor-quidditch-team")), {2})
self.assertEqual(subscriber_handler.get_users(stream_id_mapper.get("dumbledores-army")), {2})
team_name = "slytherin"
zerver_stream = convert_channel_data(
channel_data=self.mattermost_data["channel"],
@@ -313,6 +333,9 @@ class MatterMostImporter(ZulipTestCase):
self.assertFalse(check_user_in_team(snape, "gryffindor"))
self.assertTrue(check_user_in_team(snape, "slytherin"))
snape.update({"teams": None})
self.assertFalse(check_user_in_team(snape, "slytherin"))
def test_label_mirror_dummy_users(self) -> None:
label_mirror_dummy_users(
team_name="gryffindor",