예제 #1
0
    def test_update_unenrolled_list_errors(self, mock_sailthru_client):
        # test get error from Sailthru
        mock_sailthru_client.reset_mock()
        # simulate retryable error
        mock_sailthru_client.api_get.return_value = MockSailthruResponse({}, error='Got an error', code=43)
        self.assertFalse(_update_unenrolled_list(mock_sailthru_client, TEST_EMAIL,
                                                 self.course_url, False))

        # test get error from Sailthru
        mock_sailthru_client.reset_mock()
        # simulate unretryable error
        mock_sailthru_client.api_get.return_value = MockSailthruResponse({}, error='Got an error', code=1)
        self.assertTrue(_update_unenrolled_list(mock_sailthru_client, TEST_EMAIL,
                                                self.course_url, False))

        # test post error from Sailthru
        mock_sailthru_client.reset_mock()
        mock_sailthru_client.api_post.return_value = MockSailthruResponse({}, error='Got an error', code=9)
        mock_sailthru_client.api_get.return_value = MockSailthruResponse({'vars': {'unenrolled': [self.course_url]}})
        self.assertFalse(_update_unenrolled_list(mock_sailthru_client, TEST_EMAIL,
                                                 self.course_url, False))

        # test exception
        mock_sailthru_client.api_get.side_effect = SailthruClientError
        self.assertFalse(_update_unenrolled_list(mock_sailthru_client, TEST_EMAIL,
                                                 self.course_url, False))
예제 #2
0
    def test_update_unenrolled_list_errors(self, mock_sailthru_client):
        # test get error from Sailthru
        mock_sailthru_client.reset_mock()
        # simulate retryable error
        mock_sailthru_client.api_get.return_value = MockSailthruResponse({}, error='Got an error', code=43)
        self.assertFalse(_update_unenrolled_list(mock_sailthru_client, TEST_EMAIL,
                                                 self.course_url, False))

        # test get error from Sailthru
        mock_sailthru_client.reset_mock()
        # simulate unretryable error
        mock_sailthru_client.api_get.return_value = MockSailthruResponse({}, error='Got an error', code=1)
        self.assertTrue(_update_unenrolled_list(mock_sailthru_client, TEST_EMAIL,
                                                self.course_url, False))

        # test post error from Sailthru
        mock_sailthru_client.reset_mock()
        mock_sailthru_client.api_post.return_value = MockSailthruResponse({}, error='Got an error', code=9)
        mock_sailthru_client.api_get.return_value = MockSailthruResponse({'vars': {'unenrolled': [self.course_url]}})
        self.assertFalse(_update_unenrolled_list(mock_sailthru_client, TEST_EMAIL,
                                                 self.course_url, False))

        # test exception
        mock_sailthru_client.api_get.side_effect = SailthruClientError
        self.assertFalse(_update_unenrolled_list(mock_sailthru_client, TEST_EMAIL,
                                                 self.course_url, False))
예제 #3
0
    def test_update_unenrolled_list_new(self, mock_sailthru_client):
        """
        test routine which updates the unenrolled list in Sailthru
        """

        # test a new unenroll
        mock_sailthru_client.api_get.return_value = MockSailthruResponse(
            {'vars': {
                'unenrolled': ['course_u1']
            }})
        self.assertTrue(
            _update_unenrolled_list(mock_sailthru_client, TEST_EMAIL,
                                    self.course_url, True))
        mock_sailthru_client.api_get.assert_called_with(
            "user", {
                "id": TEST_EMAIL,
                "fields": {
                    "vars": 1
                }
            })
        mock_sailthru_client.api_post.assert_called_with(
            'user', {
                'vars': {
                    'unenrolled': ['course_u1', self.course_url]
                },
                'id': TEST_EMAIL,
                'key': 'email'
            })
예제 #4
0
 def test_update_unenrolled_list_old(self, mock_sailthru_client):
     # test an existing unenroll
     mock_sailthru_client.reset_mock()
     mock_sailthru_client.api_get.return_value = MockSailthruResponse({'vars': {'unenrolled': [self.course_url]}})
     self.assertTrue(_update_unenrolled_list(mock_sailthru_client, TEST_EMAIL,
                                             self.course_url, True))
     mock_sailthru_client.api_get.assert_called_with("user", {"id": TEST_EMAIL, "fields": {"vars": 1}})
     mock_sailthru_client.api_post.assert_not_called()
예제 #5
0
 def test_update_unenrolled_list_old(self, mock_sailthru_client):
     # test an existing unenroll
     mock_sailthru_client.reset_mock()
     mock_sailthru_client.api_get.return_value = MockSailthruResponse({'vars': {'unenrolled': [self.course_url]}})
     self.assertTrue(_update_unenrolled_list(mock_sailthru_client, TEST_EMAIL,
                                             self.course_url, True))
     mock_sailthru_client.api_get.assert_called_with("user", {"id": TEST_EMAIL, "fields": {"vars": 1}})
     mock_sailthru_client.api_post.assert_not_called()
예제 #6
0
 def test_update_unenrolled_list_reenroll(self, mock_sailthru_client):
     # test an enroll of a previously unenrolled course
     mock_sailthru_client.reset_mock()
     mock_sailthru_client.api_get.return_value = MockSailthruResponse({'vars': {'unenrolled': [self.course_url]}})
     self.assertTrue(_update_unenrolled_list(mock_sailthru_client, TEST_EMAIL,
                                             self.course_url, False))
     mock_sailthru_client.api_post.assert_called_with('user',
                                                      {'vars': {'unenrolled': []},
                                                       'id': TEST_EMAIL, 'key': 'email'})
예제 #7
0
 def test_update_unenrolled_list_reenroll(self, mock_sailthru_client):
     # test an enroll of a previously unenrolled course
     mock_sailthru_client.reset_mock()
     mock_sailthru_client.api_get.return_value = MockSailthruResponse({'vars': {'unenrolled': [self.course_url]}})
     self.assertTrue(_update_unenrolled_list(mock_sailthru_client, TEST_EMAIL,
                                             self.course_url, False))
     mock_sailthru_client.api_post.assert_called_with(
         'user',
         {
             'vars': {'unenrolled': []},
             'id': TEST_EMAIL, 'key': 'email'
         })
예제 #8
0
    def test_update_unenrolled_list_new(self, mock_sailthru_client):
        """
        test routine which updates the unenrolled list in Sailthru
        """

        # test a new unenroll
        mock_sailthru_client.api_get.return_value = MockSailthruResponse({'vars': {'unenrolled': ['course_u1']}})
        self.assertTrue(_update_unenrolled_list(mock_sailthru_client, TEST_EMAIL,
                                                self.course_url, True))
        mock_sailthru_client.api_get.assert_called_with("user", {"id": TEST_EMAIL, "fields": {"vars": 1}})
        mock_sailthru_client.api_post.assert_called_with('user',
                                                         {'vars': {'unenrolled': ['course_u1', self.course_url]},
                                                          'id': TEST_EMAIL, 'key': 'email'})