Esempio n. 1
0
    def test_offspring_animal_id_and_service(self):
        user = test_helpers.create_logged_in_user(self)
        user.user_permissions.add(Permission.objects.get(codename='animal_list'))
        user.user_permissions.add(Permission.objects.get(codename='animal_add_offspring'))

        # without the animal id
        url = reverse('animals.animal_add_offspring')
        response = self.client.get(url, follow=True)
        self.assertContains(response, 'Animal Id is required')

        # non existent animal id
        url = reverse('animals.animal_add_offspring') + '?animal=100'
        response = self.client.get(url, follow=True)
        self.assertContains(response, 'Animal Id is required')

        # existing animal but with no service, proceed as normal
        url = reverse('animals.animal_add_offspring') + '?animal=' + str(self.cow.id)
        response = self.client.get(url, follow=True)
        self.assertNotContains(response, 'Animal Id is required')

        # existing animal with service
        service = mommy.make('animals.Service', sire=self.cow, animal=self.cow)
        url = reverse('animals.animal_add_offspring') + '?animal=' + str(self.cow.id)
        response = self.client.get(url, follow=True)
        form_fields = response.context_data['form'].fields
        self.assertEqual(form_fields['birth_date'].initial, date.today())
        self.assertEqual(form_fields['dam'].initial, self.cow)
        self.assertEqual(form_fields['sire'].initial, service.sire)
Esempio n. 2
0
 def test_creating_animal_treatment(self):
     user = test_helpers.create_logged_in_user(self)
     user.user_permissions.add(Permission.objects.get(codename='animal_list'))
     user.user_permissions.add(Permission.objects.get(codename='animal_read'))
     user.user_permissions.add(Permission.objects.get(codename='treatment_create'))
     user.user_permissions.add(Permission.objects.get(codename='treatment_list'))
     # animal id is required
     url = reverse('animals.treatment_create')
     response = self.client.get(url, follow=True)
     self.assertContains(response, 'Animal Id is required')
     # non-existent animal
     url = reverse('animals.treatment_create') + '?animal=1'
     response = self.client.get(url, follow=True)
     self.assertContains(response, 'Animal Id is required')
     # existing animal
     url = reverse('animals.treatment_create') + '?animal=' + str(self.shauna.id)
     response = self.client.get(url, follow=True)
     self.assertNotContains(response, 'Animal Id is required')
     # creating an treatment
     post_data = {
         'date': '2015-04-30',
         'description': 'A test description',
         'notes': 'Nothing much to say'
     }
     response = self.client.post(url, post_data, follow=True)
     self.assertContains(response, 'Your new treatment has been created.')
     self.assertRedirects(response, reverse('animals.animal_read', args=[self.shauna.id]))
Esempio n. 3
0
    def test_animal_read(self):
        user = test_helpers.create_logged_in_user(self)
        user.user_permissions.add(Permission.objects.get(codename='animal_read'))
        user.user_permissions.add(Permission.objects.get(codename='service_list'))
        user.user_permissions.add(Permission.objects.get(codename='pregnancycheck_list'))
        user.user_permissions.add(Permission.objects.get(codename='animal_list'))
        user.user_permissions.add(Permission.objects.get(codename='animalnote_list'))
        user.user_permissions.add(Permission.objects.get(codename='transaction_list'))
        user.user_permissions.add(Permission.objects.get(codename='milkproduction_list'))

        dufour = mommy.make('animals.Animal', name='Dufour', birth_date=date.today(), gender=Animal.GENDER_CHOICES.cow)
        # add services
        mommy.make('animals.Service', animal=dufour, sire=self.cow, date=date.today(), notes="Dufour's service")
        # add pregnancycheck
        mommy.make('animals.PregnancyCheck', animal=dufour, result=PregnancyCheck.RESULT_CHOICES.pregnant)
        mommy.make('animals.Animal', ear_tag='56', sire=dufour, name='Dufour calf')
        # add note
        mommy.make('records.AnimalNote', details='Dufour note', animal=dufour)
        # add transaction
        feeds = mommy.make('finances.Category', name='feed')
        transaction = mommy.make('finances.Transaction', category=feeds)
        transaction.animals.add(dufour)
        # add milk production
        mommy.make('animals.MilkProduction', amount=20, animal=dufour)

        url = reverse('animals.animal_read', args=[dufour.id])
        response = self.client.get(url, follow=True)
        self.assertContains(response, "Dufour's service")
        self.assertContains(response, 'Pregnant')
        self.assertContains(response, 'Dufour calf')
        self.assertContains(response, 'feed')
        self.assertContains(response, '20')
Esempio n. 4
0
 def test_treatment_read(self):
     user = test_helpers.create_logged_in_user(self)
     user.user_permissions.add(Permission.objects.get(codename='treatment_read'))
     url = reverse('animals.treatment_read', args=[self.treatment.id])
     response = self.client.get(url, follow=True)
     self.assertContains(response, reverse('animals.animal_read', args=[self.shauna.id]))
     self.assertContains(response, reverse('animals.animal_read', args=[self.laryn.id]))
Esempio n. 5
0
    def test_creating_transaction(self):
        user = create_logged_in_user(self)
        user.user_permissions.add(Permission.objects.get(codename='transaction_create'))
        user.user_permissions.add(Permission.objects.get(codename='transaction_list'))

        post_data = {
            'date': date.today(),
            'animals': [self.shauna.id, self.laryn.id],
            'amount': 3000
        }
Esempio n. 6
0
 def service_read(self):
     user = test_helpers.create_logged_in_user(self)
     user.user_permissions.add(Permission.objects.get(codename='animal_read'))
     user.user_permissions.add(Permission.objects.get(codename='service_read'))
     user.user_permissions.add(Permission.objects.get(codename='pregnancycheck_list'))
     pregnancy_check = mommy.make('animals.PregnancyCheck', animal=self.shauna, result=PregnancyCheck.RESULT_CHOICES.open, service=self.service)
     url = reverse('animals.service_read', args=[self.service.id])
     response = self.client.get(url, follow=True)
     self.assertContains(response, 'Open')
     self.assertContains(response, pregnancy_check.id)
     self.assertContains(response.context_data, 'pregnancychecks')
Esempio n. 7
0
    def test_creating_animal(self):
        user = test_helpers.create_logged_in_user(self)
        user.user_permissions.add(Permission.objects.get(codename='animal_create'))
        user.user_permissions.add(Permission.objects.get(codename='animal_list'))
        post_data = {
            'ear_tag': '201',
            'name': 'Saldana',
            'gender': Animal.GENDER_CHOICES.bull,
            'birth_date': date.today()

        }
        url = reverse('animals.animal_create')
        response = self.client.post(url, post_data, follow=True)
        self.assertContains(response, 'Your new animal has been created.')
        self.assertRedirects(response, reverse('animals.animal_list'))
Esempio n. 8
0
    def test_adding_offspring(self):
        user = test_helpers.create_logged_in_user(self)
        user.user_permissions.add(Permission.objects.get(codename='animal_list'))
        user.user_permissions.add(Permission.objects.get(codename='animal_add_offspring'))

        post_data = {
            'ear_tag': '104M',
            'gender': Animal.GENDER_CHOICES.bull,
            'name': 'Sasha',
            'birth_date': date.today()
        }

        url = reverse('animals.animal_add_offspring') + '?animal=' + str(self.cow.id)
        self.client.post(url, post_data, follow=True)
        offspring = Animal.objects.latest('created_on')
        self.assertEqual(offspring.ear_tag, '104M')
Esempio n. 9
0
    def test_service_list(self):
        user = test_helpers.create_logged_in_user(self)
        user.user_permissions.add(Permission.objects.get(codename='animal_read'))
        user.user_permissions.add(Permission.objects.get(codename='pregnancycheck_list'))
        request = self.factory.get(reverse('animals.animal_read', args=[self.shauna.id]))
        request.user = user
        request.animal = self.shauna
        pregnancy_response = views.PregnancyCheckCRUDL().view_for_action('list').as_view()(request)
        self.assertIn(self.shauna_pd, pregnancy_response.context_data['pregnancycheck_list'])

        url = reverse('animals.animal_read', args=[self.shauna.id])
        response = self.client.get(url, follow=True)
        self.assertContains(response, 'Open')

        # pregnancy check with a service
        service = mommy.make('animals.Service', animal=self.shauna)
        mommy.make('animals.PregnancyCheck', animal=self.shauna, result=PregnancyCheck.RESULT_CHOICES.pregnant, service=service)
        url = reverse('animals.animal_read', args=[self.shauna.id])
        response = self.client.get(url, follow=True)
        self.assertContains(response, 'Pregnant')
Esempio n. 10
0
    def test_animal_id_required(self):
        user = test_helpers.create_logged_in_user(self)
        user.user_permissions.add(Permission.objects.get(codename='animal_read'))
        user.user_permissions.add(Permission.objects.get(codename='animal_list'))
        user.user_permissions.add(Permission.objects.get(codename='transaction_list'))
        user.user_permissions.add(Permission.objects.get(codename='transaction_create'))

        # without the animal id
        url = reverse('animals.transaction_create')
        response = self.client.get(url, follow=True)
        self.assertContains(response, 'Animal Id is required')

        # non existent animal id
        url = reverse('animals.transaction_create') + '?animal=100'
        response = self.client.get(url, follow=True)
        self.assertContains(response, 'Animal Id is required')

        # existing animal, proceed as normal
        url = reverse('animals.transaction_create') + '?animal=' + str(self.shauna.id)
        response = self.client.get(url, follow=True)
        self.assertNotContains(response, 'Animal Id is required')
Esempio n. 11
0
    def adding_service(self):
        user = test_helpers.create_logged_in_user(self)
        user.user_permissions.add(Permission.objects.get(codename='animal_read'))
        user.user_permissions.add(Permission.objects.get(codename='animal_create'))
        user.user_permissions.add(Permission.objects.get(codename='service_create'))
        user.user_permissions.add(Permission.objects.get(codename='service_list'))

        self.phoenix = mommy.make('animals.Animal', ear_tag='PNX')

        post_data = {
            'method': Service.METHOD_CHOICES.artificial_insemination,
            'sire': self.sire.id,
            'date': date.today()
        }

        url = reverse('animals.service_create') + '?animal=' + str(self.phoenix.id)
        response = self.client.post(url, post_data, follow=True)
        service = Service.objects.latest('created_on')
        self.assertEqual(service.animal, self.phoenix)
        self.assertRedirects(response, reverse('animals.animal_read', args=[self.phoenix.id]))
        self.assertContains(response, 'Artificial Insemination')