示例#1
0
 def test_create_duplicated_name(self):
     """
     Ensure that it is not allowed to create a Program with a duplicate name
     """
     ProgramFactory(name="duplicated name")  # saved directly to db
     data = self._build_post_data(name="duplicated name")
     response = self._make_request(method='post', data=data, admin=True)
     self.assertEqual(response.status_code, 400)
     self.assertIn("must be unique", response.data["name"][0])
示例#2
0
    def test_status_list_filter(self, query_status):
        """
        Verify that list results can be filtered by a 'status' query string argument.
        """
        # create one Program of each status
        for status in STATUSES:
            ProgramFactory(name="{} program".format(status), status=status)

        response = self._make_request(admin=True,
                                      data={'status': query_status})
        self.assertEqual(response.status_code, 200)
        results = response.data['results']
        self.assertEqual(len(results), 1)
        self.assertEqual(results[0]['status'], query_status)
示例#3
0
    def test_list_admin(self):
        """
        Verify the list includes all Programs, except those with DELETED status, for ADMINS.
        """
        # create one Program of each status
        for status in STATUSES:
            ProgramFactory(name="{} program".format(status), status=status)

        response = self._make_request(admin=True)
        self.assertEqual(response.status_code, 200)
        results = response.data['results']
        self.assertEqual(len(results), 3)
        self.assertNotIn(ProgramStatus.DELETED,
                         set(obj["status"] for obj in results))
示例#4
0
    def test_list_learner(self):
        """
        Verify the list includes only UNPUBLISHED and RETIRED Programs, for LEARNERS.
        """
        # create one Program of each status
        for status in STATUSES:
            ProgramFactory(name="{} program".format(status), status=status)

        response = self._make_request()
        self.assertEqual(response.status_code, 200)
        results = response.data['results']
        self.assertEqual(len(results), 2)
        statuses = set(obj["status"] for obj in results)
        self.assertNotIn(ProgramStatus.DELETED, statuses)
        self.assertNotIn(ProgramStatus.UNPUBLISHED, statuses)