def test_episodes_for_m2m_fields_contains_synonym_and_name(self): criteria = dict(column='hat_wearer', field='Hats', combine='and', query='Der', queryType='Contains') bowler = testmodels.Hat.objects.create(name='Bowler') content_type = ContentType.objects.get_for_model(testmodels.Hat) Synonym.objects.get_or_create(content_type=content_type, object_id=bowler.id, name="Derby") hatwearer = testmodels.HatWearer(episode=self.episode) hatwearer.save() hatwearer.hats.add(bowler) hatwearer.save() # now we add another episode with an actual hat derbishire = testmodels.Hat.objects.create(name='derbishire') _, other_episode = self.new_patient_and_episode_please() hatwearer = testmodels.HatWearer(episode=other_episode) hatwearer.save() hatwearer.hats.add(derbishire) hatwearer.save() query = queries.DatabaseQuery(self.user, [criteria]) expected = set([self.episode.id, other_episode.id]) found = set([i.id for i in query.get_episodes()]) self.assertEqual(expected, found)
def test_distinct_episodes_for_m2m_fields_containing_synonsyms_and_names( self): criteria = dict(column='hat_wearer', field='Hats', combine='and', query='Der', queryType='Contains') bowler = testmodels.Hat.objects.create(name='Bowler') content_type = ContentType.objects.get_for_model(testmodels.Hat) Synonym.objects.get_or_create(content_type=content_type, object_id=bowler.id, name="Derby") hatwearer = testmodels.HatWearer(episode=self.episode) hatwearer.save() hatwearer.hats.add(bowler) hatwearer.save() derbishire = testmodels.Hat.objects.create(name='derbishire') hatwearer.hats.add(derbishire) hatwearer.save() query = queries.DatabaseQuery(self.user, [criteria]) self.assertEqual([self.episode], query.get_episodes())
def test_episodes_for_boolean_fields_episode_subrecord(self): criteria = dict( column='hat_wearer', field='Wearing A Hat', combine='and', query='true', queryType='Equals' ) hatwearer = testmodels.HatWearer(episode=self.episode, wearing_a_hat=True) hatwearer.save() query = queries.DatabaseQuery(self.user, [criteria]) self.assertEqual([self.episode], query.get_episodes())
def test_episodes_for_m2m_fields(self): criteria = dict( column='hat_wearer', field='Hats', combine='and', query='Bowler', queryType='Equals' ) bowler = testmodels.Hat(name='Bowler') bowler.save() hatwearer = testmodels.HatWearer(episode=self.episode) hatwearer.save() hatwearer.hats.add(bowler) hatwearer.save() query = queries.DatabaseQuery(self.user, [criteria]) self.assertEqual([self.episode], query.get_episodes())