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

        old_leader = obj.leader
        payload = serializers.RunUserSerializer(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.leader = True
            payload = serializers.RunUserSerializer(obj).data

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

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

            # Test Updating Reversions
            obj.leader = old_leader
            payload = serializers.RunUserSerializer(obj).data
            response = self.client.put(url, payload, format='json')
            self.assertEqual(response.status_code, 200)
    def test_create(self):
        url = reverse('simpl_api:runuser-list')

        obj = RunUserFactory.build(
            run=RunFactory(),
            world=WorldFactory(),
            user=UserFactory(),
            role=RoleFactory(),
        )
        payload = serializers.RunUserSerializer(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)