예제 #1
0
    def test_fetch_upload_task_state(self):
        fake_token = 'Ahchai7eitheetai6ohHei2shah2ith9'
        expected_course_id = 'course-v1:edX+DemoX+Demo_Course'
        task_id = '07627226-de82-49bb-862e-c855432391cc'
        helper = UploadHelper(self.FAKE_CMS_URL,
                              self.local_demo_course_archive,
                              fake_token)
        get_uri = '%s/api/courses/v0/import/%s/' % (self.FAKE_CMS_URL,
                                                    expected_course_id)
        request_headers = {
            'Authorization': 'JWT %s' % fake_token,
        }
        request_params = {
            'task_id': task_id,
            'filename': self.local_demo_course_archive,
        }
        query = urlencode(request_params)

        with requests_mock.Mocker() as m:
            m.register_uri('GET',
                           '%s?%s' % (get_uri, query),
                           request_headers=request_headers,
                           json={'state': 'Succeeded'})
            task_state = helper.fetch_upload_task_state(task_id)
        self.assertTrue(m.called)
        self.assertEqual(task_state, 'Succeeded')
예제 #2
0
    def test_upload_wait_failed(self):
        fake_token = 'caisieJaiweixieremein2AiRie9ahl2'
        expected_course_id = 'course-v1:edX+DemoX+Demo_Course'
        expected_task_id = 'fd73c4bb-f1f1-4117-83db-f3cc571eca2a'
        post_uri = '%s/api/courses/v0/import/%s/' % (self.FAKE_CMS_URL,
                                                     expected_course_id)
        get_uri = post_uri

        request_headers = {
            'Authorization': 'JWT %s' % fake_token,
        }
        request_params = {
            'task_id': expected_task_id,
            'filename': self.local_demo_course_archive,
        }
        query = urlencode(request_params)

        helper = UploadHelper(self.FAKE_CMS_URL,
                              self.local_demo_course_archive,
                              fake_token)
        with requests_mock.Mocker() as m:
            m.register_uri('POST',
                           post_uri,
                           request_headers=request_headers,
                           json={'task_id': expected_task_id})
            m.register_uri('GET',
                           '%s?%s' % (get_uri, query),
                           request_headers=request_headers,
                           json={'state': 'Failed'})
            with self.assertRaises(UploadHelperException):
                helper.upload(wait=True)
예제 #3
0
    def status(self,
               task_id,
               url=None,
               file='archive.tar.gz',
               token=None,
               course_id=None):

        helper = UploadHelper(url or os.getenv('OLX_CMS_URL'),
                              archive=file,
                              token=token or os.getenv('OLX_CMS_TOKEN'),
                              course_id=course_id)
        return helper.fetch_upload_task_state(task_id)
예제 #4
0
    def upload(self,
               url=None,
               file='archive.tar.gz',
               token=None,
               course_id=None,
               wait=False):

        helper = UploadHelper(url or os.getenv('OLX_CMS_URL'),
                              archive=file,
                              token=token or os.getenv('OLX_CMS_TOKEN'),
                              course_id=course_id)
        return helper.upload(wait)
예제 #5
0
 def test_upload_with_autodetected_course_id(self):
     fake_token = 'caisieJaiweixieremein2AiRie9ahl2'
     expected_course_id = 'course-v1:edX+DemoX+Demo_Course'
     expected_task_id = 'fd73c4bb-f1f1-4117-83db-f3cc571eca2a'
     post_uri = '%s/api/courses/v0/import/%s/' % (self.FAKE_CMS_URL,
                                                  expected_course_id)
     helper = UploadHelper(self.FAKE_CMS_URL,
                           self.local_demo_course_archive,
                           fake_token)
     with requests_mock.Mocker() as m:
         m.register_uri('POST',
                        post_uri,
                        json={'task_id': expected_task_id})
         task_id = helper.upload()
     self.assertTrue(m.called)
     self.assertEqual(task_id, expected_task_id)
예제 #6
0
    def test_upload(self):
        token = 'caisieJaiweixieremein2AiRie9ahl2'
        course_id = 'course-v1:example+course+run'

        post_uri = '%s/api/courses/v0/import/%s/' % (self.FAKE_CMS_URL,
                                                     course_id)
        expected_task_id = '01c47bac-89a5-41d0-a968-961dce5212f2'
        with NamedTemporaryFile() as archive:
            helper = UploadHelper(self.FAKE_CMS_URL,
                                  archive.name,
                                  token,
                                  course_id)
            with requests_mock.Mocker() as m:
                m.register_uri('POST',
                               post_uri,
                               json={'task_id': expected_task_id})
                task_id = helper.upload()

            self.assertTrue(m.called)
            self.assertEqual(task_id, expected_task_id)
예제 #7
0
 def test_course_id_from_archive(self):
     expected_course_id = 'course-v1:edX+DemoX+Demo_Course'
     helper = UploadHelper(self.FAKE_CMS_URL,
                           self.local_demo_course_archive)
     self.assertEqual(helper.course_id,
                      expected_course_id)