def test_update_table(self): conn, cur = start_db(os.environ['DATABASE_NAME']) old_entry = {"logic": 123, "serial": 'abc', "model": 'MODEL', "sam": 1, "ptid": 'PTIDABCD', "plat": 2, "version": 'v2', "mxr": 3, "mxf": 4, "VERFM": 'first information' } json_dict = json.dumps(old_entry) insert_query = create_insert_query(json_dict) cur.execute(insert_query) conn.commit() new_entry = {"logic": 123, "serial": 'abc', "model": 'MODEL', "sam": 1, "ptid": 'PTIDABCD', "plat": 2, "version": 'v2', "mxr": 3, "mxf": 4, "VERFM": 'new information' } update_table(conn, 'v2', 123, new_entry) remove_duplicates(conn) table_rows = select_and_return(conn, 'v2', 123) expected = [('123', 'abc', 'MODEL', 1, 'PTIDABCD', 2, 'v2', 3, 4, 'new information')] self.assertEqual(table_rows, expected)
def test_insert_duplicate_and_remove_duplicates(self): # insert data twice in database conn, cur = start_db(os.environ['DATABASE_NAME']) dict = {"logic": 123, "serial": 'abc', "model": 'MODEL', "sam": 1, "ptid": 'PTIDABCD', "plat": 2, "version": 'v1', "mxr": 3, "mxf": 4, "VERFM": 'last information' } json_dict = json.dumps(dict) insert_query = create_insert_query(json_dict) cur.execute(insert_query) conn.commit() # remove duplicates remove_duplicates(conn) # to remove duplicate from test before table_rows = select_and_return(conn, 'v1', 123) expected = [('123', 'abc', 'MODEL', 1, 'PTIDABCD', 2, 'v1', 3, 4, 'last information')] self.assertEqual(table_rows, expected)
task = run_command.delay(ans_command, password, items) return response_build(202,{'taskid':items}) else: #handles datacheck error logging.info('[X] Data submitted does not match corresponding blueprint in db') return response_build(400,{'error':'Data submitted does not match corresponding blueprint in db'}) else: logging.info('[X] No playbook by that name in the database') return response_build(400,{'error':'No playbook by that name in the database'}) except KeyError: #missing name or auth field logging.info('[X] No name or auth contained in request') return response_build(400,{'error':' No name or auth contained in request'}) except IndexError: #empty dict in request logging.info('[X] Empty dict in params section of request') return response_build(400,{'error':'empty dict in params section of request'}) @route('/tasks/:taskid', method='GET') def return_id(taskid): output = db.db_completed(taskid) logging.debug(output) if output == None: logging.debug('[X] Processing') return response_build(202,{'info':'processing has not finished'}) else: return response_build(200,{'output':output}) atexit.register(purge_db) if __name__ == '__main__': db.start_db(schemaloc) run(host=host, port=port,server=server, workers=1)#might move to config file
def setUp(self): self.app = app.test_client() # app'mock start_db(os.environ['DATABASE_NAME'])
@app.route('/<version>/<entity>/<int:logic>', methods=['GET']) def main_method_get(version, entity, logic): database = entity conn, c = create_connection(database) remove_duplicates(conn) with conn: table_rows = select_and_return(conn, version, logic) return format_list_of_lists_to_json(table_rows) @app.route('/<version>/<entity>/<int:logic>', methods=['PUT']) def main_method_put(version, entity, logic): database = entity conn, c = create_connection(database) with conn: # have to verify if it is Json to do this body_json = retrieve_body_data() body_dict = json.loads(body_json[0]) update_table(conn, version, logic, body_dict) return "Request OK" if __name__ == '__main__': start_db(database_name) # run app in debug mode on port 8000 with gunicorn app.run()