Ejemplo n.º 1
0
    def _test_get(self, table):
        '''
        Aux method for Comment and Data Requests
        '''
        db_response = [MagicMock(), MagicMock(), MagicMock()]

        query_result = MagicMock()
        query_result.all.return_value = db_response

        final_query = MagicMock()
        final_query.filter_by.return_value = query_result

        query = MagicMock()
        query.autoflush = MagicMock(return_value=final_query)

        model = MagicMock()
        model.DomainObject = object
        model.Session.query = MagicMock(return_value=query)

        # Init the database
        db.init_db(model)

        # Call the method
        params = {
            'title': 'Default Title',
            'organization_id': 'example_uuid_v4'
        }
        result = getattr(db, table).get(**params)

        # Assertions
        self.assertEquals(db_response, result)
        final_query.filter_by.assert_called_once_with(**params)
Ejemplo n.º 2
0
    def test_get_open_datarequests_number(self):

        n_datarequests = 7
        count = 'example'

        db.func = MagicMock()
        db.func.count.return_value = count

        filter_by = MagicMock()
        filter_by.scalar.return_value = n_datarequests

        query = MagicMock()
        query.filter_by = MagicMock(return_value=filter_by)

        model = MagicMock()
        model.DomainObject = object
        model.Session.query = MagicMock(return_value=query)

        # Init the database
        db.init_db(model)

        # Call the method
        db.DataRequest.id = 'id'
        result = db.DataRequest.get_open_datarequests_number()

        # Assertions
        self.assertEquals(n_datarequests, result)
        query.filter_by.assert_called_once_with(closed=False)
        model.Session.query.assert_called_once_with(count)
        db.func.count.assert_called_once_with(db.DataRequest.id)
Ejemplo n.º 3
0
    def test_get_datarequests_comments(self):

        n_comments = 7
        count = 'example'

        db.func = MagicMock()
        db.func.count.return_value = count

        filter_by = MagicMock()
        filter_by.scalar.return_value = n_comments

        query = MagicMock()
        query.filter_by = MagicMock(return_value=filter_by)

        model = MagicMock()
        model.DomainObject = object
        model.Session.query = MagicMock(return_value=query)

        # Init the database
        db.init_db(model)

        # Call the method
        params = {'datarequest_id': 'example_uuid_v4'}
        db.Comment.id = 'id'
        result = db.Comment.get_datarequest_comments_number(**params)

        # Assertions
        self.assertEquals(n_comments, result)
        query.filter_by.assert_called_once_with(**params)
        model.Session.query.assert_called_once_with(count)
        db.func.count.assert_called_once_with(db.Comment.id)
    def test_get_datarequest_followers_number(self):

        n_followers = 7
        count = 'example'

        db.func = MagicMock()
        db.func.count.return_value = count

        filter_by = MagicMock()
        filter_by.scalar.return_value = n_followers

        query = MagicMock()
        query.filter_by = MagicMock(return_value=filter_by)

        model = MagicMock()
        model.DomainObject = object
        model.Session.query = MagicMock(return_value=query)

        # Init the database
        db.init_db(model)

        # Call the method
        params = {
            'datarequest_id': 'example_uuid_v4'
        }
        db.DataRequestFollower.id = 'id'
        result = db.DataRequestFollower.get_datarequest_followers_number(**params)

        # Assertions
        self.assertEquals(n_followers, result)
        query.filter_by.assert_called_once_with(**params)
        model.Session.query.assert_called_once_with(count)
        db.func.count.assert_called_once_with(db.DataRequestFollower.id)
    def _test_get(self, table):
        '''
        Aux method for Comment and Data Requests
        '''
        db_response = [MagicMock(), MagicMock(), MagicMock()]

        query_result = MagicMock()
        query_result.all.return_value = db_response

        final_query = MagicMock()
        final_query.filter_by.return_value = query_result

        query = MagicMock()
        query.autoflush = MagicMock(return_value=final_query)

        model = MagicMock()
        model.DomainObject = object
        model.Session.query = MagicMock(return_value=query)

        # Init the database
        db.init_db(model)

        # Call the method
        params = {
            'title': 'Default Title',
            'organization_id': 'example_uuid_v4'
        }
        result = getattr(db, table).get(**params)

        # Assertions
        self.assertEquals(db_response, result)
        final_query.filter_by.assert_called_once_with(**params)
    def test_get_open_datarequests_number(self):

        n_datarequests = 7
        count = 'example'

        db.func = MagicMock()
        db.func.count.return_value = count

        filter_by = MagicMock()
        filter_by.scalar.return_value = n_datarequests

        query = MagicMock()
        query.filter_by = MagicMock(return_value=filter_by)

        model = MagicMock()
        model.DomainObject = object
        model.Session.query = MagicMock(return_value=query)

        # Init the database
        db.init_db(model)

        # Call the method
        db.DataRequest.id = 'id'
        result = db.DataRequest.get_open_datarequests_number()

        # Assertions
        self.assertEquals(n_datarequests, result)
        query.filter_by.assert_called_once_with(closed=False)
        model.Session.query.assert_called_once_with(count)
        db.func.count.assert_called_once_with(db.DataRequest.id)
Ejemplo n.º 7
0
    def test_get_datarequest_followers_number(self):

        n_followers = 7
        count = "example"

        db.func = MagicMock()
        db.func.count.return_value = count

        filter_by = MagicMock()
        filter_by.scalar.return_value = n_followers

        query = MagicMock()
        query.filter_by = MagicMock(return_value=filter_by)

        model = MagicMock()
        model.DomainObject = object
        model.Session.query = MagicMock(return_value=query)

        # Init the database
        db.init_db(model)

        # Call the method
        params = {"datarequest_id": "example_uuid_v4"}
        db.DataRequestFollower.id = "id"
        result = db.DataRequestFollower.get_datarequest_followers_number(
            **params)

        # Assertions
        self.assertEquals(n_followers, result)
        query.filter_by.assert_called_once_with(**params)
        model.Session.query.assert_called_once_with(count)
        db.func.count.assert_called_once_with(db.DataRequestFollower.id)
Ejemplo n.º 8
0
    def test_datarequest_exist(self, first_result, expected_result):

        title = 'DataRequest Title'

        # Prepare the mocks
        def _lower(text):
            # If expected_result == true it's because lower is supossed
            # to return the same result in the two calls
            if expected_result:
                return title.lower()
            else:
                return text

        db.func.lower.side_effect = _lower

        # Query
        query_result = MagicMock()
        query_result.first.return_value = first_result

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

        query = MagicMock()
        query.autoflush = MagicMock(return_value=final_query)

        model = MagicMock()
        model.DomainObject = object
        model.Session.query = MagicMock(return_value=query)

        # Init the database
        db.init_db(model)

        # Call the method
        db.DataRequest.title = 'TITLE'
        result = db.DataRequest.datarequest_exists(title)

        # Assertion
        self.assertEquals(expected_result, result)
        db.func.lower.assert_any_call(db.DataRequest.title)
        db.func.lower.assert_any_call(title)
        # If expected_result == true is because lower is supossed
        # to return the same result in the two calls and the
        # equalization of these results must be True
        final_query.filter.assert_called_once_with(expected_result)
    def test_datarequest_exist(self, first_result, expected_result):

        title = 'DataRequest Title'

        # Prepare the mocks
        def _lower(text):
            # If expected_result == true it's because lower is supossed
            # to return the same result in the two calls
            if expected_result:
                return title.lower()
            else:
                return text

        db.func.lower.side_effect = _lower

        # Query
        query_result = MagicMock()
        query_result.first.return_value = first_result

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

        query = MagicMock()
        query.autoflush = MagicMock(return_value=final_query)

        model = MagicMock()
        model.DomainObject = object
        model.Session.query = MagicMock(return_value=query)

        # Init the database
        db.init_db(model)

        # Call the method
        db.DataRequest.title = 'TITLE'
        result = db.DataRequest.datarequest_exists(title)

        # Assertion
        self.assertEquals(expected_result, result)
        db.func.lower.assert_any_call(db.DataRequest.title)
        db.func.lower.assert_any_call(title)
        # If expected_result == true is because lower is supossed
        # to return the same result in the two calls and the
        # equalization of these results must be True
        final_query.filter.assert_called_once_with(expected_result)
Ejemplo n.º 10
0
    def _test_get_ordered_by_date(self, table, time_column):
        db_response = [MagicMock(), MagicMock(), MagicMock()]

        query_result = MagicMock()
        query_result.all.return_value = db_response

        no_ordered = MagicMock()
        no_ordered.order_by.return_value = query_result

        final_query = MagicMock()
        final_query.filter_by.return_value = no_ordered

        query = MagicMock()
        query.autoflush = MagicMock(return_value=final_query)

        model = MagicMock()
        model.DomainObject = object
        model.Session.query = MagicMock(return_value=query)

        # Init the database
        db.init_db(model)
        # Mapping
        table = getattr(db, table)
        time_column_value = MagicMock()
        setattr(table, time_column, time_column_value)

        # Call the method
        params = {
            'title': 'Default Title',
            'organization_id': 'example_uuid_v4'
        }
        result = table.get_ordered_by_date(**params)

        # Assertions
        self.assertEquals(db_response, result)
        no_ordered.order_by.assert_called_once_with(time_column_value.desc())
        final_query.filter_by.assert_called_once_with(**params)
Ejemplo n.º 11
0
    def _test_get_ordered_by_date(self, table, time_column):
        db_response = [MagicMock(), MagicMock(), MagicMock()]

        query_result = MagicMock()
        query_result.all.return_value = db_response

        no_ordered = MagicMock()
        no_ordered.order_by.return_value = query_result

        final_query = MagicMock()
        final_query.filter_by.return_value = no_ordered

        query = MagicMock()
        query.autoflush = MagicMock(return_value=final_query)

        model = MagicMock()
        model.DomainObject = object
        model.Session.query = MagicMock(return_value=query)

        # Init the database
        db.init_db(model)
        # Mapping
        table = getattr(db, table)
        time_column_value = MagicMock()
        setattr(table, time_column, time_column_value)

        # Call the method
        params = {
            'title': 'Default Title',
            'organization_id': 'example_uuid_v4'
        }
        result = table.get_ordered_by_date(**params)

        # Assertions
        self.assertEquals(db_response, result)
        no_ordered.order_by.assert_called_once_with(time_column_value.desc())
        final_query.filter_by.assert_called_once_with(**params)
    def _test_get_ordered_by_date(self, table, time_column, params):

        db_response = [MagicMock(), MagicMock(), MagicMock()]

        query_result = MagicMock()
        query_result.all.return_value = db_response

        no_ordered = MagicMock()
        no_ordered.order_by.return_value = query_result

        final_query = MagicMock()
        final_query.filter.return_value = final_query
        final_query.filter_by.return_value = no_ordered

        query = MagicMock()
        query.autoflush = MagicMock(return_value=final_query)

        model = MagicMock()
        model.DomainObject = object
        model.Session.query = MagicMock(return_value=query)

        # Init the database
        db.init_db(model)
        # Mapping
        table = getattr(db, table)
        time_column_value = MagicMock()
        title_column_value = MagicMock()
        description_column_value = MagicMock()
        setattr(table, time_column, time_column_value)
        setattr(table, 'title', title_column_value)
        setattr(table, 'description', description_column_value)

        # Call the method
        result = table.get_ordered_by_date(**params)

        # Calculate expected filter parameters
        expected_filter_by_params = params.copy()

        if 'q' in expected_filter_by_params:
            expected_filter_by_params.pop('q')

        if 'desc' in expected_filter_by_params:
            expected_filter_by_params.pop('desc')

        query = '%{0}%'.format(params['q']) if 'q' in params else None
        desc = True if 'desc' in params and params['desc'] is True else False

        # Assertions
        self.assertEquals(db_response, result)
        order = time_column_value.desc() if desc else time_column_value.asc()
        no_ordered.order_by.assert_called_once_with(order)
        final_query.filter_by.assert_called_once_with(**expected_filter_by_params)

        # This only happens with the table of data requests
        if query:
            title_column_value.ilike.assert_called_once_with(query)
            description_column_value.ilike.assert_called_once_with(query)
            db.or_.assert_called_once_with(title_column_value.ilike.return_value,
                                           description_column_value.ilike.return_value)

            final_query.filter.assert_called_once_with(db.or_.return_value)
Ejemplo n.º 13
0
    def _test_get_ordered_by_date(self, table, time_column, params):

        db_response = [MagicMock(), MagicMock(), MagicMock()]

        query_result = MagicMock()
        query_result.all.return_value = db_response

        no_ordered = MagicMock()
        no_ordered.order_by.return_value = query_result

        final_query = MagicMock()
        final_query.filter.return_value = final_query
        final_query.filter_by.return_value = no_ordered

        query = MagicMock()
        query.autoflush = MagicMock(return_value=final_query)

        model = MagicMock()
        model.DomainObject = object
        model.Session.query = MagicMock(return_value=query)

        # Init the database
        db.init_db(model)
        # Mapping
        table = getattr(db, table)
        time_column_value = MagicMock()
        title_column_value = MagicMock()
        description_column_value = MagicMock()
        setattr(table, time_column, time_column_value)
        setattr(table, "title", title_column_value)
        setattr(table, "description", description_column_value)

        # Call the method
        result = table.get_ordered_by_date(**params)

        # Calculate expected filter parameters
        expected_filter_by_params = params.copy()

        if "q" in expected_filter_by_params:
            expected_filter_by_params.pop("q")

        if "desc" in expected_filter_by_params:
            expected_filter_by_params.pop("desc")

        query = f'%{params["q"]}%' if "q" in params else None
        desc = True if "desc" in params and params["desc"] is True else False

        # Assertions
        self.assertEquals(db_response, result)
        order = time_column_value.desc() if desc else time_column_value.asc()
        no_ordered.order_by.assert_called_once_with(order)
        final_query.filter_by.assert_called_once_with(
            **expected_filter_by_params)

        # This only happens with the table of data requests
        if query:
            title_column_value.ilike.assert_called_once_with(query)
            description_column_value.ilike.assert_called_once_with(query)
            db.or_.assert_called_once_with(
                title_column_value.ilike.return_value,
                description_column_value.ilike.return_value,
            )

            final_query.filter.assert_called_once_with(db.or_.return_value)