Example #1
0
    def setUp(self):
        # Override some behaviours that are difficult to mock.
        self.original_update_questionnaire_store = QuestionnaireManager.update_questionnaire_store

        QuestionnaireManager.update_questionnaire_store = MagicMock(return_value=None)

        # Class under test.
        self.questionnaire_manager = QuestionnaireManager(MagicMock(), MagicMock())

        # Mock answer store.
        answer_store = MagicMock()
        answer_store.filter = MagicMock(return_value=[])
        self.answer_store = answer_store

        # Mock question.
        self.question = MagicMock()

        # Mock answers.
        answers = []
        for i in range(3):
            answers.append(mock_answer('answer', i, self.question))

        self.answers = answers
        self.questionnaire_manager.block_state = MagicMock()
        self.questionnaire_manager.block_state.get_answers = MagicMock(return_value=self.answers)
Example #2
0
    def test_rss_creation(self, data, refresh, resp, created, expected_request, side_effect=None):

        # Include data to mock
        self.request.raw_post_data = json.dumps(data)

        # Mock ExpenditureManager
        self.views.ExpenditureManager = MagicMock()
        # Mock ModelManager
        self.views.ModelManager = MagicMock()

        # Create a mock method to manage the token refresh
        # if needed
        if refresh:
            exp_mock = ExpenditureMock()
            self.views.ExpenditureManager = exp_mock.ExpenditureManager
            # Create social auth mocks
            social_mock = MagicMock()
            filter_mock = MagicMock()
            object_mock = MagicMock()
            object_mock.extra_data = {
                'access_token': 'accesstoken',
                'refresh_token': 'refreshtoken'
            }
            filter_mock.return_value = [object_mock]
            social_mock.filter = filter_mock
            self.request.user.social_auth = social_mock

        # Create the corresponding side effect if needed
        if side_effect:
            side_effect(self)

        # Call the view
        collection = self.views.RSSCollection(permitted_methods=('GET', 'POST'))
        response = collection.create(self.request)

        # Check response
        val = json.loads(response.content)
        self.assertEquals(response.status_code, resp[0])
        self.assertEquals(val['message'], resp[1])
        self.assertEquals(val['result'], resp[2])

        # Check the result depending if the model should
        # have been created
        if created:
            # Check rss call
            model_info = None
            if 'models' in data:
                model_info = data['models']

            revenue_model = self._generate_models(model_info)
            self.views.RSS.objects.create.assert_called_with(name=data['name'], host=data['host'], expenditure_limits=expected_request, revenue_models=revenue_model)
            self.assertEquals(self.rss_object.access_token, self.user.userprofile.access_token)
        else:
            self.views.RSS.objects.delete.assert_called_once()
 def test_filter_queryset_by_permissions_exception(self):
     queryset = MagicMock()
     user = MagicMock()
     divider = MagicMock()
     user.is_authenticated = MagicMock(return_value=True)
     user.is_superuser = False
     user.is_admin = False
     user.is_staff = False
     queryset.filter().distinct = MagicMock(side_effect=Exception)
     filter_queryset_by_permissions(queryset=queryset,
                                    user=user,
                                    divider=divider)
Example #4
0
 def test_apply_filter_function(self):
     queryset = MagicMock()
     queryset.filter = MagicMock(return_value='queryset_filtered')
     timestamp_start = 123456789
     queryset, timestamp_end = apply_filter_since(queryset, timestamp_start)
     self.assertEqual(queryset, 'queryset_filtered')
     self.assertIn(
         int(timestamp_end),
         [
             int(pendulum.instance(timezone.now()).timestamp()),
             int(pendulum.instance(timezone.now()).timestamp()) - 1,
         ],
     )
Example #5
0
    def test_get_next_answer_instance_one_more_than_previous_answers(self):
        # Given
        qm = self.questionnaire_manager
        answer_store = MagicMock()
        answer_schema = MagicMock()
        answers = [{'answer_instance': '5'}]
        answer_store.filter = MagicMock(return_value=answers)

        # When
        next_id = qm._get_next_answer_instance(answer_store, answer_schema)  # pylint: disable=protected-access

        # Then
        self.assertEqual(next_id, 6)
    def test_get_logged_in_char(self):
        """Tests if the get_logged_in_char behaves as expected.
        The test asserts if the returned value of the function is the return value
        of the mocked out database query. Also asserts if the query was called with
        the right parameters.
        """
        character = MagicMock()
        character.filter = MagicMock()
        character.filter.return_value = 'test'

        test = get_logged_in_char(character)
        character.filter.assert_called_with(is_logged=True)
        self.assertEqual(test, 'test')
    def test_GIVEN_no_model_runs_WHEN_get_model_list_THEN_empty_list_returned(self):

        mock_query_result = MagicMock()
        mock_query_result.all = MagicMock(return_value=[])

        mock_query = MagicMock()
        mock_query.filter = MagicMock()
        mock_query.filter.return_value = mock_query_result
        self._mock_session.query.return_value = mock_query

        user = User()
        models = self.model_run_service.get_models_for_user(user)

        assert_that(len(models), is_(0), "There should be no model for the user")
 def test_get_character_name(self):
     """Tests if the get_character_name function behaves as expected.
     A fake character is created and mocked out. The database query is
     mocked out and the test character is set as the return value of the
     query. The test then asserts if the returned character name is the
     same as the faked character.
     """
     characters = MagicMock()
     char = MagicMock()
     char.character_name = 'testname'
     characters.filter = MagicMock()
     characters.filter.return_value = [char]
     test = get_character_name(characters)
     characters.filter.assert_called_with(is_logged=True)
     self.assertEquals(test, 'testname')
Example #9
0
    def test_delete_private_analysis(self):

        mock_query_result = MagicMock()
        mock_query_result.one = MagicMock(return_value=self.sample_analysis)

        mock_query = MagicMock()
        mock_query.filter = MagicMock()
        mock_query.filter.return_value = mock_query_result

        self._mock_session.query = MagicMock()
        self._mock_session.query.return_value = mock_query

        analysis_service = AnalysisService(self._mock_session)
        analysis_service.delete_private_analysis(self.sample_analysis.id)

        self.assertEqual(self.sample_analysis.deleted, True)
Example #10
0
 def setup(self):
     with patch('%s.boto3.resource' % pbm, autospec=True) as m_boto_r:
         with patch('%s.boto3.client' % pbm, autospec=True) as m_boto_c:
             with patch('%s._encode_key' % pb, autospec=True) as m_ek:
                 m_ek.return_value = ('key', 'md5')
                 self.cls = S3Wrapper('bname')
     m_k1 = Mock(key='/foo/key/1', name='m_k1')
     m_k2 = Mock(key='/foo/key/2', name='m_k2')
     m_objects = MagicMock()
     m_objects.filter = MagicMock(return_value=[m_k1, m_k2])
     m_objects.all = MagicMock(return_value=[m_k1, m_k2])
     mock_bucket = Mock()
     mock_bucket.objects = m_objects
     m_boto_r.return_value.Bucket.return_value = mock_bucket
     self.mock_res = m_boto_r
     self.mock_client = m_boto_c
Example #11
0
    def test_publish_analysis(self):

        mock_query_result = MagicMock()
        mock_query_result.one = MagicMock(return_value=self.sample_analysis)

        mock_query = MagicMock()
        mock_query.filter = MagicMock()
        mock_query.filter.return_value = mock_query_result

        self._mock_session.query = MagicMock()
        self._mock_session.query.return_value = mock_query

        analysis_service = AnalysisService(self._mock_session)
        analysis_service.publish_analysis(self.sample_analysis.id)

        self.assertEqual(self.sample_analysis.viewable_by, None)
        self.assertEqual(self.sample_analysis.result_dataset.viewable_by_user_id, None)
Example #12
0
    def test_get_datasets_for_user(self):

        mock_query_result = MagicMock()
        mock_query_result.all = MagicMock()

        mock_query = MagicMock()
        mock_query.filter = MagicMock()
        mock_query.filter.return_value = mock_query_result

        self._mock_session.query = MagicMock()
        self._mock_session.query.return_value = mock_query

        service = DatasetService(self._mock_session)
        service.get_datasets_for_user(1234, dataset_type_id=1)

        self._mock_session.query.assert_called_once_with(Dataset)
        mock_query.filter.assert_called_once_with(ANY, ANY)
        mock_query_result.all.assert_called_once_with()
Example #13
0
    def test_get_model_by_id(self):
        """ Test if model can be found by id. Test just checks that the sqlalchemy is called.
        """

        mock_query_result = MagicMock()
        mock_query_result.one = MagicMock(return_value=self.sample_model)

        mock_query = MagicMock()
        mock_query.filter = MagicMock()
        mock_query.filter.return_value = mock_query_result

        self._mock_session.query = MagicMock()
        self._mock_session.query.return_value = mock_query

        model_service = ModelService(self._mock_session)
        model = model_service.get_model_by_id(1)

        self.assertEqual(model.id, 1)
        self.assertEqual(model.name, 'Test Model')
Example #14
0
    def test_get_user_by_username(self):

        mock_query_result = MagicMock()
        mock_query_result.one = MagicMock()

        mock_query = MagicMock()
        mock_query.filter = MagicMock()
        mock_query.filter.return_value = mock_query_result

        self._mock_session.query = MagicMock()
        self._mock_session.query.return_value = mock_query

        username = "******"

        user_service = UserService(self._mock_session)
        user_service.get_user_by_username(username)

        self._mock_session.query.assert_called_once_with(User)
        mock_query.filter.assert_called_once_with(ANY)
        mock_query_result.one.assert_called_once_with()
Example #15
0
    def test_walk_ToNode(self):
        nw = GraphDSLNodeWalker(self.graphmgr)

        node = MagicMock()
        node.alias.name = 'alias'
        node.filter.query = 'filter'

        nw.walk_ToNode(node, [])

        self.assertEqual(node.alias, 'alias')
        self.assertEqual(node.filter, 'filter')

        node = MagicMock()
        node.alias.name = 'alias'
        node.filter = None

        nw.walk_ToNode(node, [])

        self.assertEqual(node.alias, 'alias')
        self.assertIsNone(node.filter)
    def test_auth_resource_show(self, exist_pkg=True, authorized_pkg=True):
        #Recover the exception
        auth.tk.ObjectNotFound = self._tk.ObjectNotFound

        # Mock the calls
        package = MagicMock()
        package.id = '1'

        final_query = MagicMock()
        final_query.first = MagicMock(
            return_value=package if exist_pkg else None)

        second_join = MagicMock()
        second_join.filter = MagicMock(return_value=final_query)

        first_join = MagicMock()
        first_join.join = MagicMock(return_value=second_join)

        query = MagicMock()
        query.join = MagicMock(return_value=first_join)

        model = MagicMock()
        session = MagicMock()
        session.query = MagicMock(return_value=query)
        model.Session = session

        # Create the context
        context = {}
        context['model'] = model

        # Mock the package_show function
        self._package_show = auth.package_show
        success = True if authorized_pkg else False
        auth.package_show = MagicMock(return_value={'success': success})

        if not exist_pkg:
            self.assertRaises(self._tk.ObjectNotFound, auth.resource_show,
                              context, {})
        else:
            result = auth.resource_show(context, {})
            self.assertEquals(authorized_pkg, result['success'])
    def test_auth_resource_show(self, exist_pkg=True, authorized_pkg=True):
        #Recover the exception
        auth.tk.ObjectNotFound = self._tk.ObjectNotFound

        # Mock the calls
        package = MagicMock()
        package.id = '1'

        final_query = MagicMock()
        final_query.first = MagicMock(return_value=package if exist_pkg else None)

        second_join = MagicMock()
        second_join.filter = MagicMock(return_value=final_query)

        first_join = MagicMock()
        first_join.join = MagicMock(return_value=second_join)

        query = MagicMock()
        query.join = MagicMock(return_value=first_join)

        model = MagicMock()
        session = MagicMock()
        session.query = MagicMock(return_value=query)
        model.Session = session

        # Create the context
        context = {}
        context['model'] = model

        # Mock the package_show function
        self._package_show = auth.package_show
        success = True if authorized_pkg else False
        auth.package_show = MagicMock(return_value={'success': success})

        if not exist_pkg:
            self.assertRaises(self._tk.ObjectNotFound, auth.resource_show, context, {})
        else:
            result = auth.resource_show(context, {})
            self.assertEquals(authorized_pkg, result['success'])
Example #18
0
    def test_rss_creation(self,
                          data,
                          refresh,
                          resp,
                          created,
                          expected_request,
                          side_effect=None):

        # Include data to mock
        self.request.raw_post_data = json.dumps(data)

        # Mock ExpenditureManager
        self.views.ExpenditureManager = MagicMock()
        # Mock ModelManager
        self.views.ModelManager = MagicMock()

        # Create a mock method to manage the token refresh
        # if needed
        if refresh:
            self._exp_mock = ExpenditureMock()
            self.views.ExpenditureManager = self._exp_mock.ExpenditureManager
            # Create social auth mocks
            social_mock = MagicMock()
            filter_mock = MagicMock()
            object_mock = MagicMock()
            object_mock.extra_data = {
                'access_token': 'accesstoken',
                'refresh_token': 'refreshtoken'
            }
            filter_mock.return_value = [object_mock]
            social_mock.filter = filter_mock
            self.request.user.social_auth = social_mock

        # Create the corresponding side effect if needed
        if side_effect:
            side_effect(self)

        # Call the view
        collection = self.views.RSSCollection(permitted_methods=('GET',
                                                                 'POST'))
        response = collection.create(self.request)

        # Check response
        val = json.loads(response.content)
        self.assertEquals(response.status_code, resp[0])
        self.assertEquals(val['message'], resp[1])
        self.assertEquals(val['result'], resp[2])

        # Check the result depending if the model should
        # have been created
        if created:
            # Check rss call
            model_info = None
            if 'models' in data:
                model_info = data['models']

            revenue_model = self._generate_models(model_info)
            self.views.RSS.objects.create.assert_called_with(
                name=data['name'],
                host=data['host'],
                api_version=data['api_version'],
                expenditure_limits=expected_request,
                revenue_models=revenue_model,
                aggregator_id=self.user.email)

            self.assertEquals(self.rss_object.access_token,
                              self.user.userprofile.access_token)

            views.RSSManagerFactory.assert_called_once_with(self.rss_object)
            self.fact_mock.get_expenditure_manager.assert_called_once_with(
                self.user.userprofile.access_token)

            if not refresh:
                self._exp_mock.set_provider_limit.assert_called_once_with()

            if data['api_version'] == 2:
                self.fact_mock.get_provider_manager.assert_called_once_with(
                    self.user.userprofile.access_token)

                prov_data = {
                    'provider_id': settings.STORE_NAME.lower() + '-provider',
                    'provider_name': settings.STORE_NAME + '-Provider'
                }

                self._prov_mock.register_provider.assert_called_once_with(
                    prov_data)

        else:
            self.views.RSS.objects.delete.assert_called_once()
Example #19
0
    def test_complex_walkthrough(self):
        self.expected_nodes = {
            'fromfilter': [
                {
                    '_id': 'buzz',
                    'targets_set': [
                        'andy:woody',
                        'andy:rex'
                    ]
                },
                {
                    '_id': 'lenny',
                    'targets_set': []
                }
            ],
            '_id:(woody OR rex)': [
                {
                    '_id': 'woody',
                    'targets_set': [
                        'andy:sarge'
                    ]
                },
                {
                    '_id': 'rex',
                    'targets_set': [
                        'andy:sid'
                    ]
                }
            ],
            '_id:(sarge OR sid)': [
                {
                    '_id': 'sarge',
                    'targets_set': []
                },
                {
                    '_id': 'sid',
                    'targets_set': []
                }
            ],
            'targets_set:("molly:sarge")': [
                {
                    '_id': 'squeeze',
                    'targets_set': []
                }
            ],
            'targets_set:("molly:sid")': [
                {
                    '_id': 'squeeze',
                    'targets_set': []
                }
            ],
            'targets_set:("molly:squeeze")': [
                {
                    '_id': 'hamm',
                    'targets_set': []
                }
            ],
            'targets_set:("andy:sarge" OR "molly:sarge")': [
                {
                    '_id': 'squeeze',
                    'targets_set': []
                }
            ],
            'targets_set:("andy:sid" OR "molly:sid")': [
                {
                    '_id': 'squeeze',
                    'targets_set': []
                }
            ],
            'targets_set:("andy:squeeze" OR "molly:squeeze")': [
                {
                    '_id': 'hamm',
                    'targets_set': []
                }
            ],
            'targets_set:("molly:hamm")': [
                {
                    '_id': 'bopeep',
                    'targets_set': []
                }
            ],
            'targets_set:("molly:bopeep")': [
                {
                    '_id': 'mrpotato',
                    'targets_set': []
                }
            ]
        }
        self.expected_rels = {
            'through0filter': [
                {'_id': 'andy'},
                {'_id': 'molly'}
            ]
        }

        from0 = MagicMock()
        from0.set_ = 'NODES'
        from0.alias = 'elt0'
        from0.filter = 'fromfilter'

        from1 = MagicMock()
        from1.set_ = 'elt0'
        from1.alias = 'elt1'
        from1.filter = ''

        from2 = MagicMock()
        from2.set_ = 'elt1'
        from2.alias = 'elt2'
        from2.filter = '_id:buzz'

        statement = MagicMock()
        statement.froms = [from0, from1, from2]

        path = MagicMock()

        through0 = MagicMock()
        through0.set_ = 'RELS'
        through0.alias = 'rel0'
        through0.wmode.type = 'BREADTH'
        through0.wmode.begin = 1
        through0.wmode.end = None
        through0.wmode.direction = 'FORWARD'
        through0.filter = 'through0filter'

        through1 = MagicMock()
        through1.set_ = 'rel0'
        through1.alias = 'rel1'
        through1.wmode.type = 'DEPTH'
        through1.wmode.begin = 1
        through1.wmode.end = 2
        through1.wmode.direction = 'BACKWARD'
        through1.filter = '_id:molly'

        through2 = MagicMock()
        through2.set_ = 'rel1'
        through2.alias = 'rel1'
        through2.wmode.type = 'DEPTH'
        through2.wmode.begin = 1
        through2.wmode.end = 2
        through2.wmode.direction = 'BACKWARD'
        through2.filter = ''

        path.through = [through0, through1, through2]

        to0 = MagicMock()
        to0.alias = 'elt3'
        to0.filter = '_id:mrpotato'

        to1 = MagicMock()
        to1.alias = 'elt4'
        to1.filter = ''

        path.to = [to0, to1]

        statement.path = [path]

        result = self.walk([statement])

        self.assertIn('elt0', result)
        self.assertIn('elt1', result)
        self.assertIn('elt2', result)
        self.assertIn('elt3', result)
        self.assertIn('elt4', result)
        self.assertIn('rel0', result)
        self.assertIn('rel1', result)

        self.assertEqual(result['elt0']['type'], 'nodes')
        self.assertEqual(len(result['elt0']['dataset']), 2)
        self.assertIn(
            {
                '_id': 'buzz',
                'targets_set': ['andy:woody', 'andy:rex']
            },
            result['elt0']['dataset']
        )
        self.assertIn(
            {
                '_id': 'lenny',
                'targets_set': []
            },
            result['elt0']['dataset']
        )

        self.assertEqual(result['elt1']['type'], 'nodes')
        self.assertEqual(len(result['elt1']['dataset']), 2)
        self.assertIn(
            {
                '_id': 'buzz',
                'targets_set': ['andy:woody', 'andy:rex']
            },
            result['elt1']['dataset']
        )
        self.assertIn(
            {
                '_id': 'lenny',
                'targets_set': []
            },
            result['elt1']['dataset']
        )

        self.assertEqual(result['elt2']['type'], 'nodes')
        self.assertEqual(len(result['elt2']['dataset']), 1)
        self.assertIn(
            {
                '_id': 'buzz',
                'targets_set': ['andy:woody', 'andy:rex']
            },
            result['elt2']['dataset']
        )

        self.assertEqual(result['elt3']['type'], 'nodes')
        self.assertEqual(len(result['elt3']['dataset']), 1)
        self.assertIn(
            {
                '_id': 'mrpotato',
                'targets_set': []
            },
            result['elt3']['dataset']
        )

        self.assertEqual(result['elt4']['type'], 'nodes')
        self.assertEqual(len(result['elt4']['dataset']), 3)
        self.assertIn(
            {
                '_id': 'hamm',
                'targets_set': []
            },
            result['elt4']['dataset']
        )
        self.assertIn(
            {
                '_id': 'bopeep',
                'targets_set': []
            },
            result['elt4']['dataset']
        )
        self.assertIn(
            {
                '_id': 'mrpotato',
                'targets_set': []
            },
            result['elt4']['dataset']
        )

        self.assertEqual(result['rel0']['type'], 'relationships')
        self.assertEqual(len(result['rel0']['dataset']), 2)
        self.assertIn({'_id': 'andy'}, result['rel0']['dataset'])
        self.assertIn({'_id': 'molly'}, result['rel0']['dataset'])

        self.assertEqual(result['rel1']['type'], 'relationships')
        self.assertEqual(len(result['rel1']['dataset']), 1)
        self.assertIn({'_id': 'molly'}, result['rel1']['dataset'])
Example #20
0
    def test_walk_depth_backward(self):
        self.expected_nodes = {
            'fromfilter': [
                {'_id': 'buzz'}
            ],
            'targets_set:("andy:buzz")': [
                {'_id': 'woody'},
                {'_id': 'rex'}
            ],
            'targets_set:("andy:woody")': [
                {'_id': 'sarge'}
            ],
            'targets_set:("andy:rex")': [
                {'_id': 'sid'}
            ],
            'targets_set:("andy:sarge")': [],
            'targets_set:("andy:sid")': []
        }
        self.expected_rels = {
            'throughfilter': [
                {'_id': 'andy'}
            ]
        }

        from_ = MagicMock()
        from_.set_ = 'NODES'
        from_.alias = 'elt0'
        from_.filter = 'fromfilter'

        statement = MagicMock()
        statement.froms = [from_]

        path = MagicMock()

        through = MagicMock()
        through.set_ = 'RELS'
        through.alias = 'rel0'
        through.wmode.type = 'DEPTH'
        through.wmode.begin = 1
        through.wmode.end = 2
        through.wmode.direction = 'BACKWARD'
        through.filter = 'throughfilter'
        path.through = [through]

        to = MagicMock()
        to.alias = 'elt1'
        to.filter = '_id:sarge'

        path.to = [to]

        statement.path = [path]

        result = self.walk([statement])

        self.assertIn('elt0', result)
        self.assertIn('elt1', result)
        self.assertIn('rel0', result)

        self.assertEqual(result['elt0']['type'], 'nodes')
        self.assertEqual(len(result['elt0']['dataset']), 1)
        self.assertIn({'_id': 'buzz'}, result['elt0']['dataset'])

        self.assertEqual(result['elt1']['type'], 'nodes')
        self.assertEqual(len(result['elt1']['dataset']), 1)
        self.assertIn({'_id': 'sarge'}, result['elt1']['dataset'])

        self.assertEqual(result['rel0']['type'], 'relationships')
        self.assertEqual(len(result['rel0']['dataset']), 1)
        self.assertIn({'_id': 'andy'}, result['rel0']['dataset'])
Example #21
0
    def test_rss_creation(self, data, refresh, resp, created, expected_request, side_effect=None):

        # Include data to mock
        self.request.body = json.dumps(data)

        # Mock ExpenditureManager
        self.views.ExpenditureManager = MagicMock()
        # Mock ModelManager
        self.views.ModelManager = MagicMock()

        # Create a mock method to manage the token refresh
        # if needed
        if refresh:
            self._exp_mock = ExpenditureMock()
            self.views.ExpenditureManager = self._exp_mock.ExpenditureManager
            # Create social auth mocks
            social_mock = MagicMock()
            filter_mock = MagicMock()
            object_mock = MagicMock()
            object_mock.extra_data = {
                'access_token': 'accesstoken',
                'refresh_token': 'refreshtoken'
            }
            filter_mock.return_value = [object_mock]
            social_mock.filter = filter_mock
            self.request.user.social_auth = social_mock

        # Create the corresponding side effect if needed
        if side_effect:
            side_effect(self)

        # Call the view
        collection = self.views.RSSCollection(permitted_methods=('GET', 'POST'))
        response = collection.create(self.request)

        # Check response
        val = json.loads(response.content)
        self.assertEquals(response.status_code, resp[0])
        self.assertEquals(val['message'], resp[1])
        self.assertEquals(val['result'], resp[2])

        # Check the result depending if the model should
        # have been created
        if created:
            # Check rss call
            model_info = None
            if 'models' in data:
                model_info = data['models']

            revenue_model = self._generate_models(model_info)
            self.views.RSS.objects.create.assert_called_with(
                name=data['name'],
                host=data['host'],
                api_version=data['api_version'],
                expenditure_limits=expected_request,
                revenue_models=revenue_model,
                aggregator_id=self.user.email
            )

            self.assertEquals(self.rss_object.access_token, self.user.userprofile.access_token)

            views.RSSManagerFactory.assert_called_once_with(self.rss_object)
            self.fact_mock.get_expenditure_manager.assert_called_once_with(self.user.userprofile.access_token)

            if not refresh:
                self._exp_mock.set_provider_limit.assert_called_once_with()

            if data['api_version'] == 2:
                self.fact_mock.get_provider_manager.assert_called_once_with(self.user.userprofile.access_token)

                prov_data = {
                    'provider_id': settings.STORE_NAME.lower() + '-provider',
                    'provider_name': settings.STORE_NAME + '-Provider'
                }

                self._prov_mock.register_provider.assert_called_once_with(prov_data)

        else:
            self.views.RSS.objects.delete.assert_called_once()
Example #22
0
    def test_walk_breadth_forward_noend(self):
        self.expected_nodes = {
            'fromfilter': [
                {
                    '_id': 'buzz',
                    'targets_set': [
                        'andy:woody',
                        'andy:rex'
                    ]
                }
            ],
            '_id:(woody OR rex)': [
                {
                    '_id': 'woody',
                    'targets_set': [
                        'andy:sarge'
                    ]
                },
                {
                    '_id': 'rex',
                    'targets_set': [
                        'andy:sid'
                    ]
                }
            ],
            '_id:(sarge OR sid)': [
                {
                    '_id': 'sarge',
                    'targets_set': []
                },
                {
                    '_id': 'sid',
                    'targets_set': []
                }
            ]
        }
        self.expected_rels = {
            'throughfilter': [
                {'_id': 'andy'}
            ]
        }

        from_ = MagicMock()
        from_.set_ = 'NODES'
        from_.alias = 'elt0'
        from_.filter = 'fromfilter'

        statement = MagicMock()
        statement.froms = [from_]

        path = MagicMock()

        through = MagicMock()
        through.set_ = 'RELS'
        through.alias = 'rel0'
        through.wmode.type = 'BREADTH'
        through.wmode.begin = 1
        through.wmode.end = None
        through.wmode.direction = 'FORWARD'
        through.filter = 'throughfilter'
        path.through = [through]

        to = MagicMock()
        to.alias = 'elt1'
        to.filter = '_id:sarge'

        path.to = [to]

        statement.path = [path]

        result = self.walk([statement])

        self.assertIn('elt0', result)
        self.assertIn('elt1', result)
        self.assertIn('rel0', result)

        self.assertEqual(result['elt0']['type'], 'nodes')
        self.assertEqual(len(result['elt0']['dataset']), 1)
        self.assertIn(
            {
                '_id': 'buzz',
                'targets_set': ['andy:woody', 'andy:rex']
            },
            result['elt0']['dataset']
        )

        self.assertEqual(result['elt1']['type'], 'nodes')
        self.assertEqual(len(result['elt1']['dataset']), 1)
        self.assertIn(
            {
                '_id': 'sarge',
                'targets_set': []
            },
            result['elt1']['dataset']
        )

        self.assertEqual(result['rel0']['type'], 'relationships')
        self.assertEqual(len(result['rel0']['dataset']), 1)
        self.assertIn({'_id': 'andy'}, result['rel0']['dataset'])