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
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)
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)
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)
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
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
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
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()
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
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)
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)