Beispiel #1
0
    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)
Beispiel #2
0
    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)
Beispiel #3
0
    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)
Beispiel #4
0
    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())
Beispiel #5
0
    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)
Beispiel #6
0
    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)
Beispiel #7
0
 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()
Beispiel #8
0
    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
Beispiel #9
0
 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
Beispiel #10
0
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()
Beispiel #11
0
    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]))
Beispiel #12
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()
Beispiel #13
0
    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]))
Beispiel #14
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())
Beispiel #15
0
    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)
Beispiel #16
0
    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())
Beispiel #17
0
 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
Beispiel #18
0
 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()
Beispiel #19
0
    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)
Beispiel #20
0
 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")
Beispiel #21
0
 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__)
Beispiel #23
0
    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
Beispiel #25
0
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()
Beispiel #26
0
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
Beispiel #29
0
    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())
Beispiel #30
0
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()