示例#1
0
    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)
示例#2
0
    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())
示例#3
0
 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())
示例#4
0
    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())