コード例 #1
0
    def test_fetched_controlled_circuit_owner_is_not_the_controller(self):
        controller = create_user(email='*****@*****.**')
        circuit = create_circuit(name='c1', controller=controller)

        request = self.factory.get(self.url, format='json')
        force_authenticate(request, controller)
        response = self.view(request)

        self.assertCircuitEqual(response.data, circuit)
コード例 #2
0
    def setUp(self):
        self.user = create_user()
        self.circuit = create_circuit(name='c1')
        self.circuit.controller = self.user
        self.circuit.save()

        self.view = ActivationLogView.as_view()
        self.factory = APIRequestFactory()
        self.url = reverse('circuit-activation-log')
コード例 #3
0
    def setUp(self):
        self.user = create_user()
        self.circuit = create_circuit(name='c1')
        self.circuit.collaborators.add(self.user)

        self.view = CircuitScheduleView.as_view()
        self.factory = APIRequestFactory()
        self.url = reverse('circuit-schedule',
                           kwargs={'circuit_id': self.circuit.pk})
コード例 #4
0
    def setUp(self):
        self.user = create_user()
        self.circuit = create_circuit(name='c1')
        self.circuit.collaborators.add(self.user)

        self.view = CircuitOneTimeActivationView.as_view()
        self.factory = APIRequestFactory()
        self.url = reverse('circuit-one-time-activations',
                           kwargs={'circuit_id': self.circuit.pk})
コード例 #5
0
 def setUp(self):
     self.user = create_user()
     self.circuit = create_circuit(name='c1')
     self.circuit.collaborators.add(self.user)
     self.circuit_not_related = create_circuit(name='c2')
     self.view = CircuitViewSet.as_view(actions={
         'get': 'retrieve'
     })
     self.factory = APIRequestFactory()
     self.url = reverse('circuit-detail', kwargs={'pk': self.circuit.pk})
コード例 #6
0
    def test_post_circuit_not_owned(self):
        today = datetime.datetime.now(tz=pytz.UTC)

        data = {
            'amount': 200,
            'timestamp': today.strftime('%Y-%m-%dT%H:%M:%S')
        }

        user2 = create_user(email="*****@*****.**")

        request = self.factory.post(self.url, data=data, format='json')
        force_authenticate(request, user2)
        response = self.view(request, circuit_id=self.circuit.pk)

        self.assertEqual(response.status_code, status.HTTP_403_FORBIDDEN)
コード例 #7
0
    def test_fetch_circuit_not_owned(self):
        today = datetime.datetime.now(tz=pytz.UTC)
        tomorrow = today + datetime.timedelta(days=1)
        yesterday = today - +datetime.timedelta(days=1)

        s1 = create_scheduled_activation(self.circuit, timestamp=yesterday)
        s2 = create_scheduled_activation(self.circuit, timestamp=today)
        s3 = create_scheduled_activation(self.circuit, timestamp=tomorrow)

        user2 = create_user(email="*****@*****.**")

        request = self.factory.get(self.url, format='json')
        force_authenticate(request, user2)
        response = self.view(request, circuit_id=self.circuit.pk)

        self.assertEqual(response.status_code, status.HTTP_200_OK)
        self.assertScheduleEqual(response.data, [s1, s2, s3])
コード例 #8
0
    def test_put_circuit_not_owned(self):
        today = datetime.datetime.now(tz=pytz.UTC)
        tomorrow = today + datetime.timedelta(days=1)
        yesterday = today - +datetime.timedelta(days=1)

        create_scheduled_activation(self.circuit, timestamp=yesterday)
        create_scheduled_activation(self.circuit, timestamp=today)
        create_scheduled_activation(self.circuit, timestamp=tomorrow)

        data = [{'active': False, 'amount': 200, 'time': '21:00:49'}]

        user2 = create_user(email="*****@*****.**")

        request = self.factory.put(self.url, data=data, format='json')
        force_authenticate(request, user2)
        response = self.view(request, circuit_id=self.circuit.pk)

        self.assertEqual(response.status_code, status.HTTP_403_FORBIDDEN)
コード例 #9
0
    def test_fetch_as_collaborators(self):
        today = datetime.datetime.now(tz=pytz.UTC)
        tomorrow = today + datetime.timedelta(days=1)
        yesterday = today - +datetime.timedelta(days=1)

        create_scheduled_one_time_activation(self.circuit, timestamp=yesterday)
        s2 = create_scheduled_one_time_activation(self.circuit,
                                                  timestamp=today)
        create_scheduled_one_time_activation(self.circuit, timestamp=tomorrow)

        user2 = create_user(email="*****@*****.**")
        self.circuit.collaborators.add(user2)

        request = self.factory.get(self.url, format='json')
        force_authenticate(request, user2)
        response = self.view(request, circuit_id=self.circuit.pk)

        self.assertEqual(response.status_code, status.HTTP_200_OK)
        self.assertOneTimeActivationsEqual(response.data, [s2])
コード例 #10
0
    def test_post_as_collaborator(self):
        today = datetime.datetime.now(tz=pytz.UTC)

        data = {
            'amount': 200,
            'timestamp': today.strftime('%Y-%m-%dT%H:%M:%S')
        }

        user2 = create_user(email="*****@*****.**")
        self.circuit.collaborators.add(user2)

        request = self.factory.post(self.url, data=data, format='json')
        force_authenticate(request, user2)
        response = self.view(request, circuit_id=self.circuit.pk)

        activation = self.circuit.one_time_activations \
            .filter(timestamp__date=datetime.date.today()) \
            .order_by('-timestamp') \
            .first()

        self.assertEqual(response.status_code, status.HTTP_200_OK)
        self.assertOneTimeActivationEqual(data, activation)
コード例 #11
0
 def setUp(self):
     self.user = create_user()
     self.view = CircuitViewSet.as_view(actions={'get': 'list'})
     self.factory = APIRequestFactory()
     self.url = reverse('circuit-list')
コード例 #12
0
 def setUp(self):
     self.user = create_user()
     self.view = ControlledCircuitView.as_view()
     self.factory = APIRequestFactory()
     self.url = reverse('mine-circuit')