def test_update(self):
        obj = self.period
        url = reverse('simpl_api:period-detail', kwargs={'pk': obj.pk})

        old_order = obj.order
        payload = serializers.PeriodSerializer(obj).data

        # Does this api work without auth?
        response = self.client.put(url, payload, format='json')
        self.assertEqual(response.status_code, 401)

        # Does this api work with auth?
        with self.login(self.user):
            obj.order = obj.order if obj.order else 1
            payload = serializers.PeriodSerializer(obj).data

            response = self.client.put(url, payload, format='json')
            self.assertEqual(response.status_code, 200)
            self.assertTrue(response.data['order'] != old_order)

            obj.name = self.faker.name()
            payload = serializers.PeriodSerializer(obj).data

            # Test Updating Reversions
            obj.order = old_order
            payload = serializers.PeriodSerializer(obj).data
            response = self.client.put(url, payload, format='json')
            self.assertEqual(response.status_code, 200)
    def test_create(self):
        url = reverse('simpl_api:period-list')

        scenario = ScenarioFactory()
        obj = PeriodFactory.build(scenario=scenario)

        payload = serializers.PeriodSerializer(obj).data

        # Does this api work without auth?
        response = self.client.post(url, payload, format='json')
        self.assertEqual(response.status_code, 401)

        # Does this api work with auth?
        with self.login(self.user):
            response = self.client.post(url, payload, format='json')
            self.assertEqual(response.status_code, 201)
            self.assertNotEqual(len(response.data), 0)