def test_singleton(self): # Given config_manager = ConfigManager() config_manager.logger_path = self.config_file_name # When db = DBConnector(DbFileConnector(config_manager)) db2 = DBConnector(DbFileConnector(config_manager)) # Then self.assertEqual(db2, db)
def test_get_articles_by_borrowed(self): # Given articles = [{ "id": "1", "name": ["mlotek", "hammer"], "total_quantity": 2, "quantity": 2, "is_available": True }, { "id": "2", "name": ["wiertarka", "driller"], "total_quantity": 3, "quantity": 2, "is_available": False }] with open(self.config_file_name, "w") as f: json.dump(articles, f) config_manager = ConfigManager() config_manager.db_path = self.config_file_name db = DBConnector(DbFileConnector(config_manager)) expected = Article("2", ["wiertarka", "driller"], 3, 2, False) # When article = db.get_articles_by_borrowed()[0] # Then self.assertEqual(expected, article)
def test_add_article_quantity(self): # Given articles = [{ "id": "1", "name": ["mlotek", "hammer"], "total_quantity": 22, "quantity": 2, "is_available": True }, { "id": "2", "name": ["wiertarka", "driller"], "total_quantity": 22, "quantity": 2, "is_available": False }] with open(self.config_file_name, "w") as f: json.dump(articles, f) config_manager = ConfigManager() config_manager.db_path = self.config_file_name db = DBConnector(DbFileConnector(config_manager)) search_id = '2' expected = Article('2', ["wiertarka", "driller"], 22, 22, True) search_id_2 = '1' expected_2 = Article('1', ["mlotek", "hammer"], 22, 12, True) # When article = db.add_article_quantity(search_id, 20, True) article_2 = db.add_article_quantity(search_id_2, 10, True) # Then self.assertEqual(expected, article) self.assertEqual(expected_2, article_2)
def test_remove_article_by_id(self): # Given articles = [{ "id": "1", "name": ["mlotek", "hammer"], "total_quantity": 2, "quantity": 1, "is_available": False }] with open(self.config_file_name, "w") as f: json.dump(articles, f) config_manager = ConfigManager() config_manager.db_path = self.config_file_name db = DBConnector(DbFileConnector(config_manager)) article_id = '1' expected = [] # When db.remove_article_by_id(article_id) # Then self.assertListEqual(expected, db.get_all_articles())
def test_get_all_articles(self): # Given articles = [{ "id": "1", "name": ["mlotek", "hammer"], "total_quantity": 2, "quantity": 3, "is_available": True }, { "id": "2", "name": ["wiertarka", "driller"], "total_quantity": 4, "quantity": 5, "is_available": False }] with open(self.config_file_name, "w") as f: json.dump(articles, f) config_manager = ConfigManager() config_manager.db_path = self.config_file_name db_file_connector = DbFileConnector(config_manager) db = DBConnector(db_file_connector) expected = [ Article('1', ["mlotek", "hammer"], 2, 3, True), Article('2', ["wiertarka", "driller"], 4, 5, False) ] # When articles = db.get_all_articles() # Then self.assertListEqual(expected, articles)
def test_get_articles_by_name(self): # Given articles = [{ "id": "1", "name": ["mlotek", "hammer"], "total_quantity": 20, "quantity": 5, "is_available": True }, { "id": "2", "name": ["wiertarka", "driller"], "total_quantity": 10, "quantity": 8, "is_available": False }] with open(self.config_file_name, "w") as f: json.dump(articles, f) config_manager = ConfigManager() config_manager.db_path = self.config_file_name db = DBConnector(DbFileConnector(config_manager)) search_string = 'rka' expected = [Article('2', ["wiertarka", "driller"], 10, 8, False)] # When articles = db.get_articles_by_name(search_string) # Then self.assertListEqual(expected, articles)
def __init__(self): if (os.environ.get('ENV') != 'prod'): # We are not in Heroku github_token = os.environ.get('GITHUB_TOKEN') else: github_token = os.environ['GITHUB_TOKEN'] self.github = github3.login(token=github_token) self.db = DBConnector()
def get_lab_values(self, data_change=None): db = DBConnector() labory_tests = [ r'\i2b2\Labtests\LAB\(LLB16) Chemistry\(LLB17) Lipid Tests\CHOL\LOINC:2093-3', r'\i2b2\Labtests\LAB\(LLB53) Hematology\(LLB57) Complete Blood Count\HGB\LOINC:718-7', r'\i2b2\Labtests\LAB\(LLB16) Chemistry\(LLB20) Cardiac Tests\CPK\LOINC:2157-6', r'\i2b2\Labtests\LAB\(LLB16) Chemistry\(LLB20) Cardiac Tests\HSCRP\LOINC:30522-7' ] lables = [ "cholesterol", "hemoglobin", "creatine", "C_REACTIVE_PROTEIN" ] result = dict() for test in labory_tests: data_m = list() data_f = list() sql_query = labory_by_flag(test, 'M', data_change) male = db.query(sql_query) for value in male: data_m.append(float(value[0])) sql_query = labory_by_flag(test, 'F', data_change) female = db.query(sql_query) for value in female: data_f.append(float(value[0])) data_all = db.query(labory_by_flag_count(test))[0][0] result.update( {lables.pop(0): [{ 'M': data_m, 'F': data_f, "V": data_all }]}) return result return result
def get_all_patient(self, data_change=None): db = DBConnector() data = db.query(all_patient(data_change)) lables = "Patient found" patient_count_data = data[0][0] result = {'lable': lables, 'data': patient_count_data} return result
def i_remove_article(step, number): config_manager = ConfigManager() config_manager.db_path = world.path_db db_file_connector = DbFileConnector(config_manager) db = DBConnector(db_file_connector) db.remove_article_by_id(number) world.articles = db.get_all_articles()
def test_change_status_command(self): # Given config_manager = ConfigManager() app_info_logger = AppInfoLogger() db = DBConnector(DbFileConnector(config_manager)) logger = LoggerConnector(LoggerFileConnector(config_manager)) config_manager.db_path = self.database_file_name config_manager.logger_path = self.logger_file_name articles = [{ "id": "3", "is_available": True, "name": ["Szalik", "Scarf"], "quantity": 1, "total_quantity": 1 }] with open(self.database_file_name, "w") as f: json.dump(articles, f) with open(self.logger_file_name, "w") as f: json.dump([], f) INVOKER = Invoker(db, logger, config_manager, app_info_logger) expected = [Article('3', ["Szalik", "Scarf"], 1, 1, False)] # When with mock.patch('builtins.input', side_effect=["3", "1", "1"]): with patch('sys.stdout', new=StringIO()): INVOKER.execute('9') self.assertEqual(str(expected[0]), str(db.get_articles_by_name('szalik')[0]))
def i_get_article_by_id(step, id): config_manager = ConfigManager() config_manager.db_path = world.path_db db_file_connector = DbFileConnector(config_manager) db = DBConnector(db_file_connector) article = db.get_article_by_id(id) world.articles = [db.get_article_by_id(id)] if article else list()
def test_return_article_command_2(self): # Given config_manager = ConfigManager() app_info_logger = AppInfoLogger() db = DBConnector(DbFileConnector(config_manager)) logger = LoggerConnector(LoggerFileConnector(config_manager)) config_manager.db_path = self.database_file_name config_manager.logger_path = self.logger_file_name articles = [{ "id": "18", "is_available": True, "name": ["Paczka", "Package"], "quantity": 150, "total_quantity": 250 }] with open(self.database_file_name, "w") as f: json.dump(articles, f) with open(self.logger_file_name, "w") as f: json.dump([], f) INVOKER = Invoker(db, logger, config_manager, app_info_logger) expected = [Article('18', ["Paczka", "Package"], 250, 150, True)] # When with mock.patch('builtins.input', side_effect=["18", "101", "\n"]): with patch('sys.stdout', new=StringIO()): INVOKER.execute('14') # Then self.assertEqual(str(expected[0]), str(db.get_articles_by_name('Paczka')[0]))
def test_add_article_3(self): # Given articles = [] with open(self.config_file_name, "w") as f: json.dump(articles, f) config_manager = ConfigManager() config_manager.db_path = self.config_file_name db = DBConnector(DbFileConnector(config_manager)) article = Article('1', ["mlotek", "hammer"], 1, 2, False) article2 = Article('2', ["mlotek2", "hammer2"], 3, 6, False) expected = [ Article('1', ["mlotek", "hammer"], 1, 2, False), Article('2', ["mlotek2", "hammer2"], 3, 6, False) ] # When db.add_article(article) db.add_article(article) db.add_article(article2) # Then self.assertListEqual(expected, db.get_all_articles())
def test_save_config_command(self): # Given config_manager = ConfigManager() app_info_logger = AppInfoLogger() db = DBConnector(DbFileConnector(config_manager)) logger = LoggerConnector(LoggerFileConnector(config_manager)) config_manager.db_path = self.database_file_name config_manager.logger_path = self.logger_file_name config = { 'db_path': 'db.json', 'language': 'pl', 'logger_path': 'logger.json' } with open(self.config_file_name, "w") as f: json.dump(config, f) config_manager = ConfigManager(self.config_file_name) INVOKER = Invoker(db, logger, config_manager, app_info_logger) expected = "INFO: CONFIGURATION_SAVED\n" with mock.patch('builtins.input', return_value="1"): with patch('sys.stdout', new=StringIO()) as result: INVOKER.execute('12') # Then self.assertEqual(result.getvalue(), expected)
def test_display_history_command(self): # Given config_manager = ConfigManager() app_info_logger = AppInfoLogger() db = DBConnector(DbFileConnector(config_manager)) logger = LoggerConnector(LoggerFileConnector(config_manager)) config_manager.db_path = self.database_file_name config_manager.logger_path = self.logger_file_name logs = [{ 'id': '1', 'logs': [{ "data": "12-11-2020", "text": "Returned 1" }] }] with open(self.logger_file_name, "w") as f: json.dump(logs, f) INVOKER = Invoker(db, logger, config_manager, app_info_logger) expected = "+------------+------------+" + "\n" \ + "| DATE | TEXT |" + "\n" \ + "+------------+------------+" + "\n" \ + "| 12-11-2020 | 1 RETURNED |" + "\n" \ + "+------------+------------+" # When with mock.patch('builtins.input', return_value="1"): with patch('sys.stdout', new=StringIO()) as result: INVOKER.execute('4') # Then self.assertEqual(expected, result.getvalue())
def get_vital_status(self, data_change=None): db = DBConnector() lables = ["Deceased", "Living", "Deferred"] if data_change is not None: lables.append("not recorded") else: data_male = db.query(gender_equal_male()) data_female = db.query(gender_equal_female()) data_all_patient = [data_male[0][0], data_female[0][0]] data_all_m = 0 data_all_f = 0 data_f = list() data_m = list() for element in lables: sql_query = vital_status(element, 'F', data_change) female = db.query(sql_query)[0][0] data_all_f += female data_f.append(female) sql_query = vital_status(element, 'M', data_change) male = db.query(sql_query)[0][0] data_all_m += male data_m.append(male) if data_change is None: unknown_m = data_all_patient[0] - data_all_m unknown_f = data_all_patient[1] - data_all_f lables.append("not recorded") data_m.append(unknown_m) data_f.append(unknown_f) result = {"lable": lables, "M": data_m, "F": data_f} return result
def __init__(self, host, port): self.camIds = [166, 167, 168, 169] self.host = host self.port = port self.sessionID = "" self.bs = bytearray() self.bbs = bytearray(4) self.db = DBConnector()
def __create_table(self): if self.table_create_sql is None: print("表创建语句不存在!") sys.exit(0) if self.table_create_sql is not None: conn = DBConnector(self.mysql_config) conn.execute_sql(self.table_create_sql)
def test_bad_credentials(self): connector = DBConnector(db_name=self.test_db_name) response = connector.get_connection(user="******") self.assertIsNone(response) response = connector.get_connection(user="******", passwd="BadPassword") self.assertIsNone(response) response = connector.get_connection(user="******", passwd="BadPassword")
def __init__(self): self.commans = (Play(), Variable(), Speech(), Info()) #, Sinoptik()) self.db = DBConnector() # Очищаем список команд. Список не актуален. self.db.IUD("delete from core_execute") self.last_processed_ID = -1 self.db.commit() self.run()
def setUp(self): if os.environ.get('TRAVIS') == None: self.github = GitHub() self.db = DBConnector() self.config = Config() self.github.update_library_data(self.config.github_user, self.config.github_repos[0]) self.filename = "./csv/{}.csv".format(GitHubData.__tablename__)
def get_gender_distribution(self, data_change=None): db = DBConnector() data_male = db.query(gender_equal_male(data_change)) data_female = db.query(gender_equal_female(data_change)) data = [data_male[0][0], data_female[0][0]] lables = ["Male", "Female"] result = {"lable": lables, "data": data} return result
def first_rows(limit=15): db = DBConnector() sql_query = """SELECT DISTINCT c_hlevel, c_name, (SELECT count(DISTINCT patient_num) FROM i2b2demodata.observation_fact WHERE concept_cd in (SELECT concept_cd FROM i2b2demodata.concept_dimension WHERE concept_path = c_fullname)), c_facttablecolumn, c_tablename,c_columnname,c_operator, c_fullname FROM i2b2metadata.icd10_icd9 WHERE c_fullname LIKE '\\Diagnoses\\%' order by c_fullname LIMIT {}; """.format(str(limit)) data = db.query(sql_query) return data
def i_borrow_article(step, qty, id): config_manager = ConfigManager() config_manager.db_path = world.path_db db_file_connector = DbFileConnector(config_manager) db = DBConnector(db_file_connector) if db.get_article_by_id(id).quantity + int(qty) <= db.get_article_by_id( id).total_quantity: article = db.add_article_quantity(id, int(qty), True) db.remove_article_by_id(id) db.add_article(article) world.articles = db.get_all_articles()
def i_change_to_not_available_article(step, number): config_manager = ConfigManager() config_manager.db_path = world.path_db db_file_connector = DbFileConnector(config_manager) db = DBConnector(db_file_connector) new_obj = db.change_article_availability(number, False) if new_obj: db.remove_article_by_id(number) db.add_article(new_obj) world.articles = db.get_all_articles()
def build_navigation_tree(self, data_change=None): db_connection = DBConnector() data_list = list() root = db_connection.query(tree_root(self.table_name)) data_list.extend(root) nav_tree_list = db_connection.query( tree_patient_all_over_0(self.table_name, data_change)) data_list.extend(nav_tree_list) navigation_tree = list_into_tree_node(data_list) return navigation_tree
def cleanup(self): connector = DBConnector() connection = connector.get_connection() cursor = connection.cursor() try: cursor.execute("DROP TABLE {}".format(self.test_table)) except Exception as err: pass try: cursor.execute("DROP TABLE EXISTS {}".format(self.other_test)) except Exception as err: pass
def test_display_full_history_command(self): # Given config_manager = ConfigManager() app_info_logger = AppInfoLogger() db = DBConnector(DbFileConnector(config_manager)) logger = LoggerConnector(LoggerFileConnector(config_manager)) config_manager.db_path = self.database_file_name config_manager.logger_path = self.logger_file_name articles = [{ "id": "1", "name": ["mlotek", "hammer"], "total_quantity": 2, "quantity": 2, "is_available": True }, { "id": "2", "name": ["wiertarka", "driller"], "total_quantity": 2, "quantity": 2, "is_available": False }] with open(self.database_file_name, "w") as f: json.dump(articles, f) logs = [{ 'id': '1', 'logs': [{ "data": "08-05-2020", "text": "Returned 1" }] }] with open(self.logger_file_name, "w") as f: json.dump(logs, f) INVOKER = Invoker(db, logger, config_manager, app_info_logger) expected = "+----+------------+------------+" + "\n" \ + "| ID | DATE | TEXT |" + "\n" \ + "+----+------------+------------+" + "\n" \ + "| 1 | 08-05-2020 | 1 RETURNED |" + "\n" \ + "+----+------------+------------+" # When with patch('sys.stdout', new=StringIO()) as result: with mock.patch('builtins.input', return_value="2"): INVOKER.execute('3') # Then self.assertEqual(expected, result.getvalue())
def i_borrow_article(step, qty, id): config_manager = ConfigManager() config_manager.db_path = world.path_db db_file_connector = DbFileConnector(config_manager) db = DBConnector(db_file_connector) if db.get_article_by_id( id).is_available and db.get_article_by_id(id).quantity >= int(qty): if db.get_article_by_id(id).quantity == int(qty): article = db.add_article_quantity(id, -int(qty), False) else: article = db.add_article_quantity(id, -int(qty), True) db.remove_article_by_id(id) db.add_article(article) world.articles = db.get_all_articles()