Skip to content
Snippets Groups Projects
Commit 83d07e4c authored by Tamas Kiss's avatar Tamas Kiss
Browse files

Rename project to Mattermost Matchmaker

parent 1c92a99a
No related branches found
No related tags found
No related merge requests found
# .coveragerc to control coverage.py # .coveragerc to control coverage.py
[run] [run]
branch = True branch = True
source = coffee_bot source = mattermost_matchmaker
[report] [report]
# Regexes for lines to exclude from consideration # Regexes for lines to exclude from consideration
......
# Mattermost Coffee Bot # Mattermost Matchmaker
The purpose of this small bot is to act as a matchmaker for users that shares channel with the bot. The purpose of this small bot is to act as a matchmaker for users that shares channel with the bot.
## Development ## Development
......
File moved
File moved
File moved
File moved
...@@ -11,7 +11,7 @@ class CodeQualityCase(TestCase): ...@@ -11,7 +11,7 @@ class CodeQualityCase(TestCase):
self.rcfile = self.vcsroot.joinpath('.pylintrc') self.rcfile = self.vcsroot.joinpath('.pylintrc')
def test_source_quality(self): def test_source_quality(self):
self.assertEqual(0, epylint.lint("coffee_bot", ["--fail-under=9.5", f"--rcfile={self.rcfile}"])) self.assertEqual(0, epylint.lint("mattermost_matchmaker", ["--fail-under=9.5", f"--rcfile={self.rcfile}"]))
def test_test_quality(self): def test_test_quality(self):
self.assertEqual(0, epylint.lint("tests", ["--fail-under=9.5", f"--rcfile={self.rcfile}"])) self.assertEqual(0, epylint.lint("tests", ["--fail-under=9.5", f"--rcfile={self.rcfile}"]))
...@@ -4,7 +4,7 @@ import copy ...@@ -4,7 +4,7 @@ import copy
import mock import mock
import mattermost import mattermost
from coffee_bot import match_making from mattermost_matchmaker import matchmaking
class MatchMakingCaseBase(unittest.TestCase): class MatchMakingCaseBase(unittest.TestCase):
...@@ -65,7 +65,7 @@ class MatchMakingCase(MatchMakingCaseBase): ...@@ -65,7 +65,7 @@ class MatchMakingCase(MatchMakingCaseBase):
self.assertIn(self.my_channel_membership, self.members) self.assertIn(self.my_channel_membership, self.members)
members_except_me = match_making.members_in_channel_besides_me( members_except_me = matchmaking.members_in_channel_besides_me(
self.client, "channel-id") self.client, "channel-id")
self.assertNotIn( self.assertNotIn(
...@@ -77,20 +77,20 @@ class MatchMakingCase(MatchMakingCaseBase): ...@@ -77,20 +77,20 @@ class MatchMakingCase(MatchMakingCaseBase):
self.client.create_group_channel_with.return_value = { self.client.create_group_channel_with.return_value = {
"id": "group-chat-id"} "id": "group-chat-id"}
group_id = match_making.create_group(self.client, ["user-id-0", "user-id-1"]) group_id = matchmaking.create_group(self.client, ["user-id-0", "user-id-1"])
self.assertEqual(group_id, "group-chat-id") self.assertEqual(group_id, "group-chat-id")
self.client.create_group_channel_with.assert_called_with( self.client.create_group_channel_with.assert_called_with(
other_user_ids_list=['user-id-0', 'user-id-1'] other_user_ids_list=['user-id-0', 'user-id-1']
) )
@mock.patch('coffee_bot.match_making.create_group') @mock.patch('mattermost_matchmaker.matchmaking.create_group')
@mock.patch('coffee_bot.match_making.random.shuffle') @mock.patch('mattermost_matchmaker.matchmaking.random.shuffle')
def test_making_matches_for_members_even(self, _shuffle, create_group): def test_making_matches_for_members_even(self, _shuffle, create_group):
members = self._generate_n_members(4) members = self._generate_n_members(4)
create_group.side_effect = lambda c, ids: ";".join(ids) create_group.side_effect = lambda c, ids: ";".join(ids)
groups_created, left_out = match_making.make_matches_for_members( groups_created, left_out = matchmaking.make_matches_for_members(
client=self.client, client=self.client,
members=members, members=members,
group_size=2, group_size=2,
...@@ -99,13 +99,13 @@ class MatchMakingCase(MatchMakingCaseBase): ...@@ -99,13 +99,13 @@ class MatchMakingCase(MatchMakingCaseBase):
self.assertIsNone(left_out, "No one should be left out in this setup") self.assertIsNone(left_out, "No one should be left out in this setup")
self.assertListEqual(["user-id-0;user-id-1", "user-id-2;user-id-3"], groups_created) self.assertListEqual(["user-id-0;user-id-1", "user-id-2;user-id-3"], groups_created)
@mock.patch('coffee_bot.match_making.create_group') @mock.patch('mattermost_matchmaker.matchmaking.create_group')
@mock.patch('coffee_bot.match_making.random.shuffle') @mock.patch('mattermost_matchmaker.matchmaking.random.shuffle')
def test_making_matches_for_members_odd(self, _shuffle, create_group): def test_making_matches_for_members_odd(self, _shuffle, create_group):
members = self._generate_n_members(5) members = self._generate_n_members(5)
create_group.side_effect = lambda c, ids: ";".join(ids) create_group.side_effect = lambda c, ids: ";".join(ids)
groups_created, left_out = match_making.make_matches_for_members( groups_created, left_out = matchmaking.make_matches_for_members(
client=self.client, client=self.client,
members=members, members=members,
group_size=2, group_size=2,
...@@ -115,12 +115,12 @@ class MatchMakingCase(MatchMakingCaseBase): ...@@ -115,12 +115,12 @@ class MatchMakingCase(MatchMakingCaseBase):
self.assertListEqual(["user-id-0;user-id-1", "user-id-2;user-id-3"], groups_created) self.assertListEqual(["user-id-0;user-id-1", "user-id-2;user-id-3"], groups_created)
@mock.patch('coffee_bot.match_making.make_matches_for_members') @mock.patch('mattermost_matchmaker.matchmaking.make_matches_for_members')
@mock.patch('coffee_bot.match_making.members_in_channel_besides_me') @mock.patch('mattermost_matchmaker.matchmaking.members_in_channel_besides_me')
class MatchingInChannelCase(MatchMakingCaseBase): class MatchingInChannelCase(MatchMakingCaseBase):
def test_minimum_members_with_message(self, members_besides_me, make_matches_for_members): def test_minimum_members_with_message(self, members_besides_me, make_matches_for_members):
members_besides_me.return_value = self._generate_n_members(2) members_besides_me.return_value = self._generate_n_members(2)
match_making.matching_in_channel( matchmaking.matching_in_channel(
self.client, self.client,
channel_id="channel-id", channel_id="channel-id",
too_few_message="Too few", too_few_message="Too few",
...@@ -132,7 +132,7 @@ class MatchingInChannelCase(MatchMakingCaseBase): ...@@ -132,7 +132,7 @@ class MatchingInChannelCase(MatchMakingCaseBase):
def test_minimum_members_without_message(self, members_besides_me, make_matches_for_members): def test_minimum_members_without_message(self, members_besides_me, make_matches_for_members):
members_besides_me.return_value = self._generate_n_members(2) members_besides_me.return_value = self._generate_n_members(2)
match_making.matching_in_channel( matchmaking.matching_in_channel(
self.client, self.client,
channel_id="channel-id", channel_id="channel-id",
too_few_message=None, too_few_message=None,
...@@ -146,7 +146,7 @@ class MatchingInChannelCase(MatchMakingCaseBase): ...@@ -146,7 +146,7 @@ class MatchingInChannelCase(MatchMakingCaseBase):
make_matches_for_members.return_value = (["group-id-1", "group-id-2"], None) make_matches_for_members.return_value = (["group-id-1", "group-id-2"], None)
members_besides_me.return_value = self._generate_n_members(2) members_besides_me.return_value = self._generate_n_members(2)
match_making.matching_in_channel( matchmaking.matching_in_channel(
self.client, self.client,
channel_id="channel-id", channel_id="channel-id",
group_hail="Hail Group!", group_hail="Hail Group!",
...@@ -162,7 +162,7 @@ class MatchingInChannelCase(MatchMakingCaseBase): ...@@ -162,7 +162,7 @@ class MatchingInChannelCase(MatchMakingCaseBase):
make_matches_for_members.return_value = (["group-id-1", "group-id-2"], None) make_matches_for_members.return_value = (["group-id-1", "group-id-2"], None)
members_besides_me.return_value = self._generate_n_members(2) members_besides_me.return_value = self._generate_n_members(2)
match_making.matching_in_channel( matchmaking.matching_in_channel(
self.client, self.client,
channel_id="channel-id", channel_id="channel-id",
group_hail=None, group_hail=None,
...@@ -177,7 +177,7 @@ class MatchingInChannelCase(MatchMakingCaseBase): ...@@ -177,7 +177,7 @@ class MatchingInChannelCase(MatchMakingCaseBase):
"first_name": "Firstname", "last_name": "LASTNAME"} "first_name": "Firstname", "last_name": "LASTNAME"}
members_besides_me.return_value = self._generate_n_members(1) members_besides_me.return_value = self._generate_n_members(1)
match_making.matching_in_channel( matchmaking.matching_in_channel(
self.client, self.client,
channel_id="channel-id", channel_id="channel-id",
left_out_message="Couldn't match {user[first_name]} {user[last_name]} this time", left_out_message="Couldn't match {user[first_name]} {user[last_name]} this time",
...@@ -193,7 +193,7 @@ class MatchingInChannelCase(MatchMakingCaseBase): ...@@ -193,7 +193,7 @@ class MatchingInChannelCase(MatchMakingCaseBase):
make_matches_for_members.return_value = ([], "user-id-0") make_matches_for_members.return_value = ([], "user-id-0")
members_besides_me.return_value = self._generate_n_members(2) members_besides_me.return_value = self._generate_n_members(2)
match_making.matching_in_channel( matchmaking.matching_in_channel(
self.client, self.client,
channel_id="channel-id", channel_id="channel-id",
left_out_message=None, left_out_message=None,
......
# pylint: disable=missing-class-docstring, missing-function-docstring # pylint: disable=missing-class-docstring, missing-function-docstring
import unittest import unittest
from coffee_bot import match_making from mattermost_matchmaker import matchmaking
class RandomNonrepeatingTuplesCase(unittest.TestCase): class RandomNonrepeatingTuplesCase(unittest.TestCase):
...@@ -8,7 +8,7 @@ class RandomNonrepeatingTuplesCase(unittest.TestCase): ...@@ -8,7 +8,7 @@ class RandomNonrepeatingTuplesCase(unittest.TestCase):
population = ["alma", "korte", "cseresznye", "meggy"] population = ["alma", "korte", "cseresznye", "meggy"]
# pylint: disable=unnecessary-comprehension # pylint: disable=unnecessary-comprehension
random_pairs = [p for p in match_making.random_nonrepeating_tuples(population, 2)] random_pairs = [p for p in matchmaking.random_nonrepeating_tuples(population, 2)]
self.assertEqual(len(random_pairs), len(population)/2) self.assertEqual(len(random_pairs), len(population)/2)
...@@ -21,7 +21,7 @@ class RandomNonrepeatingTuplesCase(unittest.TestCase): ...@@ -21,7 +21,7 @@ class RandomNonrepeatingTuplesCase(unittest.TestCase):
population = ["alma", "korte", "cseresznye"] population = ["alma", "korte", "cseresznye"]
# pylint: disable=unnecessary-comprehension # pylint: disable=unnecessary-comprehension
random_pairs = [p for p in match_making.random_nonrepeating_tuples(population, 2)] random_pairs = [p for p in matchmaking.random_nonrepeating_tuples(population, 2)]
self.assertEqual(len(random_pairs), (len(population)+1)/2) self.assertEqual(len(random_pairs), (len(population)+1)/2)
...@@ -48,6 +48,6 @@ class RandomNonrepeatingTuplesCase(unittest.TestCase): ...@@ -48,6 +48,6 @@ class RandomNonrepeatingTuplesCase(unittest.TestCase):
population = [] population = []
# pylint: disable=unnecessary-comprehension # pylint: disable=unnecessary-comprehension
random_pairs = [p for p in match_making.random_nonrepeating_tuples(population, 2)] random_pairs = [p for p in matchmaking.random_nonrepeating_tuples(population, 2)]
self.assertEqual(len(random_pairs), 0) self.assertEqual(len(random_pairs), 0)
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment