def test_match_last_matched(mocker, monkeypatch): fix_matcher_rand(mocker) from chatty.domain.user_state import ( User, ) from chatty.domain.model.match import Language, MatchingQueue import requests mock_request(monkeypatch, requests) session = Session() english = (session.query(Language).get('en_US') or Language(id='en_US', name='English')) user = User('TEST-01') user.languages = [english] partner = User('TEST-02') partner.languages = [english] session.add(user) session.add(partner) session.commit() MatchingQueue.push(partner) assert MatchingQueue.match_partner(user) == partner MatchingQueue.remove(partner) user.partner = None user.last_matched = partner.id MatchingQueue.push(partner) assert MatchingQueue.match_partner(user) == None user.last_matched = "other" assert MatchingQueue.match_partner(user) == partner
def _do_search(self, message): if not self.delegate.on_try_search(self): return partner = MatchingQueue.match_partner(self.user) if partner: self.match_user(partner, message) return MatchingQueue.push(self.user) self.send_message(self._( "Finding someone you can chat with..." ), action.IDLE__ACTION_SEARCH_WAITING)
def test_match_gender(mocker, monkeypatch): fix_matcher_rand(mocker) from chatty.domain.user_state import ( User, ) from chatty.domain.model.match import Language, MatchingQueue import requests mock_request(monkeypatch, requests) session = Session() english = (session.query(Language).get('en_US') or Language(id='en_US', name='English')) user = User('TEST-01') user.languages = [english] user.gender = "male" partner = User('TEST-02') partner.languages = [english] partner.gender = "female" partner.finding_genders = "male,female" user.finding_genders = "female" session.add(user) session.add(partner) session.commit() MatchingQueue.push(partner) assert MatchingQueue.match_partner(user) == partner MatchingQueue.remove(partner) user.partner = None MatchingQueue.push(partner) user.finding_genders = "male" assert MatchingQueue.match_partner(user) == None user.finding_genders = "male,female" assert MatchingQueue.match_partner(user) == partner user.partner = None MatchingQueue.remove(partner) MatchingQueue.push(partner) partner.finding_genders = "female" assert MatchingQueue.match_partner(user) == None user.gender = "undefined" assert MatchingQueue.match_partner(user) == None