Example #1
0
def test_view_find(saved_view_instance, random_text, view_global_schema):

    _values = {'description': random_text(qnt=12)}
    _models = ViewGlobalModel.find(_values)
    assert len(_models) == 0
    _view_gen = saved_view_instance(_values)
    next(_view_gen)
    # print('\nunit, contents, test_view_find, _view ->', _view)
    _models = ViewGlobalModel.find(_values)
    assert len(_models) == 1
    assert view_global_schema.dump(_models[0]).get(
        'description') == _values.get('description')
    next(_view_gen)
    _models = ViewGlobalModel.find(_values)
    assert len(_models) == 0
Example #2
0
def test_view_delete(saved_view_instance, view_global_schema):
    # spare id and description of saved view:
    _view_gen = saved_view_instance()
    _view = next(_view_gen)
    _original_data = view_global_schema.dump(_view)

    # Find by id and insure is exists:
    _found_view = ViewGlobalModel.find_by_id(_original_data.get('view_id'))
    assert _found_view is not None

    # Delete instance:
    _view.delete_fm_db()

    # Try to find by id and get None as a result:
    _found_view = ViewGlobalModel.find_by_id(_original_data.get('view_id'))
    assert _found_view is None

    # Destroy saved view it's not nesessary here couse the instance already deleted
    next(_view_gen)
Example #3
0
def test_view_find_by_id(saved_view_instance, view_global_schema):
    '''
    Find by id successfull.
    '''
    # spare id and description of saved view:
    _view_gen = saved_view_instance()
    _original_data = view_global_schema.dump(next(_view_gen))

    # Try to find instance with wrong_view_id:
    _found_view_instance = ViewGlobalModel.find_by_id('wrong_view_id')
    assert _found_view_instance is None

    # Find instance by id:
    _found_view_instance = ViewGlobalModel.find_by_id(_original_data.get('view_id'))
    _found_data = view_global_schema.dump(_found_view_instance)

    # Insure found instance is same as saved one:
    for key in _found_data.keys():
        assert _found_data[key] == _original_data[key]

    # Destroy saved view
    next(_view_gen)
Example #4
0
def _fill_views():
    for _view in global_constants.get_VIEWS:
        _existing_view = ViewGlobalModel.find_by_id(_view.get('view_id'))
        if _existing_view is None:
            try:
                _view = ViewGlobalModel(view_id=_view.get('view_id'),
                                        description=_view.get('description'))
                _view.save_to_db()
            except Exception as err:
                print(
                    'application.contents.modules.dbs_init_contents on '
                    'fill_views.\nSome error:\n', err)
Example #5
0
    def get(cls):
        '''
        Get instance from db.
        '''
        # print('\nviews, get request arg ->', request.args.get('view_id'))

        if not UserModel.find_by_id(get_jwt_identity()).is_admin:
            return no_access()
        _search_json = view_global_get_schema.load(
            {'view_id': request.args.get('view_id')})
        _view = ViewGlobalModel.find_by_id(view_id=_search_json.get('view_id'))
        if _view is None:
            return cls.not_found(**_search_json)
        return {
            'message': str(_("Found, see payload.")),
            'payload': view_global_get_schema.dump(_view)
        }, 200
Example #6
0
 def post(cls):
     '''
     Create content instance and save to db.
     '''
     # print('post')
     if not UserModel.find_by_id(get_jwt_identity()).is_admin:
         return no_access()
     fbp.set_lng(request.headers.get('Accept-Language'))
     _view = view_global_schema.load(request.get_json(),
                                     session=dbs_global.session)
     _view_fm_db = ViewGlobalModel.find_by_id(view_id=_view.view_id)
     if _view_fm_db is not None:
         return cls.already_exists({'view_id': _view.view_id})
     _view.save_to_db()
     return {
         'message':
         str(
             _("The view has been saved successfully. "
               "Details are in payload.")),
         'payload':
         view_global_get_schema.dump(_view)
     }, 201
Example #7
0
 def delete(cls):
     '''
     Delete instance from db.
     '''
     if not UserModel.find_by_id(get_jwt_identity()).is_admin:
         return no_access()
     fbp.set_lng(request.headers.get('Accept-Language'))
     _requested_dict = {'view_id': request.args.get('view_id')}
     # testing fields
     _delete_json = view_global_get_schema.load(_requested_dict)
     _view = ViewGlobalModel.find_by_id(view_id=_delete_json.get('view_id'))
     if _view is None:
         return cls.not_found(**_delete_json)
     _view.delete_fm_db()
     return {
         'message':
         str(
             _(
                 "The view with id '%(view_id)s' has been deleted "
                 "successfully.",
                 view_id=_delete_json['view_id']))
     }, 200
Example #8
0
    def get(cls) -> ['ViewGlobalModel']:
        '''
        The resource give list of available view in the system.
        User should be admin.
        '''
        fbp.set_lng(request.headers.get('Accept-Language'))

        if UserModel.find_by_id(get_jwt_identity()).is_admin:
            payload = [
                view_global_get_schema.dump(_view)
                for _view in ViewGlobalModel.find()
            ]
            count = len(payload)
            return {
                'message':
                str(
                    _("There are %(count)s views in our database as follows:",
                      count=count)),
                'payload':
                payload
            }, 200
        else:
            return no_access()
Example #9
0
 def put(cls):
     '''
     Update instance and save to db.
     '''
     if not UserModel.find_by_id(get_jwt_identity()).is_admin:
         return no_access()
     # print('\ncontents, resources, view, update_json ->', request.get_json())
     _update_json = view_global_get_schema.load(request.get_json())
     # print('\ncontents, resources, view, update_json ->', _update_json)
     _view = ViewGlobalModel.find_by_id(view_id=_update_json['view_id'])
     if _view is None:
         return cls.not_found(_update_json.get('view_id'))
     _view.update(_update_json)
     return {
         'message':
         str(
             _(
                 "The view with id '%(view_id)s' has been updated "
                 "successfully. Details are in payload.",
                 view_id=_update_json['view_id'])),
         'payload':
         view_global_get_schema.dump(_view)
     }, 200
Example #10
0
def test_view_update(saved_view_instance, view_global_schema):
    # spare id and description of saved view:
    _view_gen = saved_view_instance()
    _view = next(_view_gen)
    _original_data = view_global_schema.dump(_view)

    # Change description and update instance:
    _changed_data = _original_data.copy()
    _changed_data['description'] += ' !corrected!'
    _view.update(_changed_data)

    # Get instance by id from db:
    _found_view = ViewGlobalModel.find_by_id(_original_data.get('view_id'))
    _found_data = view_global_schema.dump(_found_view)
    # print(_found_data)

    # Insure instance has been updated:
    assert _original_data.get('description') != _found_data.get('description')
    for key in _found_data.keys():
        assert _changed_data[key] == _found_data[key]

    # Destroy saved view
    next(_view_gen)
Example #11
0
def test_view_find_all(saved_view_instance):
    '''
    No searching criterion.
    '''
    # Create couple of saved models
    _ids = []
    _view_gens = []
    _views = []
    # create 5 sets of ids, view dederators and saved views
    for index in range(5):
        _ids.append(str(uuid4()))
        _view_gens.append(saved_view_instance({'view_id': _ids[index]}))
        _views.append(next(_view_gens[index]))

    # find all views in view
    _views_fm_db = ViewGlobalModel.find()
    assert isinstance(_views_fm_db, List)
    assert len(_views_fm_db) >= 5
    for _view_fm_db in _views_fm_db:
        assert isinstance(_view_fm_db, ViewGlobalModel)

    # destroy created views
    for _view_gen in _view_gens:
        next(_view_gen)