示例#1
0
    def test_makedirs_badengine(self):
        fLOG(__file__,
             self._testMethodName,
             OutputPrint=__name__ == "__main__")
        temp = get_temp_folder(__file__, "temp_missing_makedirs2")
        dbf = os.path.join(temp, 'tr', 'td.db3')

        values = [
            {
                "name": "A",
                "age": 10,
                "score": 34.5
            },
            {
                "name": "B",
                "age": 20,
                "score": -34.5
            },
        ]
        df = pandas.DataFrame(values)
        try:
            Database.fill_sql_table(df, dbf, "newtable", engine='rty')
            raise AssertionError('engine is recognized but should not')
        except DBException:
            pass
示例#2
0
    def test_makedirs_badengine(self):
        fLOG(
            __file__,
            self._testMethodName,
            OutputPrint=__name__ == "__main__")
        temp = get_temp_folder(__file__, "temp_missing_makedirs2")
        dbf = os.path.join(temp, 'tr', 'td.db3')

        values = [{"name": "A", "age": 10, "score": 34.5},
                  {"name": "B", "age": 20, "score": -34.5}, ]
        df = pandas.DataFrame(values)
        try:
            Database.fill_sql_table(df, dbf, "newtable", engine='rty')
            raise AssertionError('engine is recognized but should not')
        except DBException:
            pass
示例#3
0
    def test_import_df(self):
        fLOG(__file__,
             self._testMethodName,
             OutputPrint=__name__ == "__main__")
        dbf = os.path.join(os.path.abspath(os.path.split(__file__)[0]),
                           "temp_database_df.db3")
        if os.path.exists(dbf):
            os.remove(dbf)

        values = [
            {
                "name": "A",
                "age": 10,
                "score": 34.5
            },
            {
                "name": "B",
                "age": 20,
                "score": -34.5
            },
        ]
        df = pandas.DataFrame(values)
        df = df[['age', 'name', 'score']]
        db = Database.fill_sql_table(df, dbf, "newtable")
        db.execute_view("SELECT * FROM newtable")
        df2 = db.to_df("SELECT * FROM newtable")
        df3 = df2[["age", "name", "score"]]
        self.assertGreater(len(df), 0)
        self.assertEqual(len(df3), len(df))
        for a, b in zip(df.values, df3.values):
            self.assertGreater(len(a), 0)
            self.assertEqual(len(a), len(b))
            for c, d in zip(a, b):
                self.assertEqual(c, d)
        db.close()
示例#4
0
    def test_import_df(self):
        fLOG(
            __file__,
            self._testMethodName,
            OutputPrint=__name__ == "__main__")
        dbf = os.path.join(
            os.path.abspath(
                os.path.split(__file__)[0]),
            "temp_database_df.db3")
        if os.path.exists(dbf):
            os.remove(dbf)

        values = [{"name": "A", "age": 10, "score": 34.5},
                  {"name": "B", "age": 20, "score": -34.5}, ]
        df = pandas.DataFrame(values)
        db = Database.fill_sql_table(df, dbf, "newtable")
        db.execute_view("SELECT * FROM newtable")
        df2 = db.to_df("SELECT * FROM newtable")
        df3 = df2[["age", "name", "score"]]
        self.assertGreater(len(df), 0)
        self.assertEqual(len(df3), len(df))
        for a, b in zip(df.values, df3.values):
            self.assertGreater(len(a), 0)
            self.assertEqual(len(a), len(b))
            for c, d in zip(a, b):
                self.assertEqual(c, d)
        db.close()
示例#5
0
    def test_db_index(self):
        fLOG(__file__,
             self._testMethodName,
             OutputPrint=__name__ == "__main__")
        temp = get_temp_folder(__file__, "temp_missing_makedirs")
        dbf = os.path.join(temp, 'tr', 'td.db3')

        values = [
            {
                "name": "A",
                "age": 10,
                "score": 34.5
            },
            {
                "name": "B",
                "age": 20,
                "score": -34.5
            },
        ]
        df = pandas.DataFrame(values)
        df = df[['age', 'name', 'score']]
        db = Database.fill_sql_table(df, dbf, "newtable")
        has = db.has_index('ind')
        self.assertFalse(has)
        resi = db.get_index_on_table('newtable', full=True)
        self.assertEqual(resi, [])
        resi = db.get_index_on_table('newtable', full=False)
        self.assertEqual(resi, [])
        resi = db.get_column_type('newtable', 'name')
        self.assertEqual(resi, str)
        self.assertRaise(lambda: db.get_column_type('newtable', 'name2'),
                         DBException)
        resi = db.get_table_nfirst_lines('newtable', 2)
        self.assertEqual(resi, [(10, 'A', 34.5, 1), (20, 'B', -34.5, 2)])
        cur = db.execute_script('SELECT name FROM newtable')
        self.assertEqual(cur, None)
        cur = db.execute_script('SELECT name FROM newtable', close=False)
        self.assertFalse(cur is None)

        db.create_table("nextable2",
                        columns={
                            -1: ("key", int, "PRIMARYKEY", "AUTOINCREMENT"),
                            0: ("name", str),
                            1: ("number", float),
                            2: ('tint', int),
                            3: ('tint64', numpy.int64),
                            4: ('tfloat64', numpy.float64),
                            5: ('tdt', datetime.datetime),
                            6: ('tdec', decimal.Decimal)
                        })
        cur.close()
        db.close()
示例#6
0
    def test_makedirs(self):
        fLOG(
            __file__,
            self._testMethodName,
            OutputPrint=__name__ == "__main__")
        temp = get_temp_folder(__file__, "temp_missing_makedirs")
        dbf = os.path.join(temp, 'tr', 'td.db3')

        values = [{"name": "A", "age": 10, "score": 34.5},
                  {"name": "B", "age": 20, "score": -34.5}, ]
        df = pandas.DataFrame(values)
        db = Database.fill_sql_table(df, dbf, "newtable")
        db.execute_view("SELECT * FROM newtable")
        db.close()
示例#7
0
    def test_db_index(self):
        fLOG(
            __file__,
            self._testMethodName,
            OutputPrint=__name__ == "__main__")
        temp = get_temp_folder(__file__, "temp_missing_makedirs")
        dbf = os.path.join(temp, 'tr', 'td.db3')

        values = [{"name": "A", "age": 10, "score": 34.5},
                  {"name": "B", "age": 20, "score": -34.5}, ]
        df = pandas.DataFrame(values)
        db = Database.fill_sql_table(df, dbf, "newtable")
        has = db.has_index('ind')
        self.assertFalse(has)
        resi = db.get_index_on_table('newtable', full=True)
        self.assertEqual(resi, [])
        resi = db.get_index_on_table('newtable', full=False)
        self.assertEqual(resi, [])
        resi = db.get_column_type('newtable', 'name')
        self.assertEqual(resi, str)
        self.assertRaise(lambda: db.get_column_type(
            'newtable', 'name2'), DBException)
        resi = db.get_table_nfirst_lines('newtable', 2)
        self.assertEqual(resi, [(10, 'A', 34.5, 1), (20, 'B', -34.5, 2)])
        cur = db.execute_script('SELECT name FROM newtable')
        self.assertEqual(cur, None)
        cur = db.execute_script('SELECT name FROM newtable', close=False)
        self.assertFalse(cur is None)

        db.create_table("nextable2", columns={-1: ("key", int, "PRIMARYKEY", "AUTOINCREMENT"),
                                              0: ("name", str), 1: ("number", float),
                                              2: ('tint', int),
                                              3: ('tint64', numpy.int64),
                                              4: ('tfloat64', numpy.float64),
                                              5: ('tdt', datetime.datetime),
                                              6: ('tdec', decimal.Decimal)})
        cur.close()
        db.close()
示例#8
0
    def test_makedirs(self):
        fLOG(__file__,
             self._testMethodName,
             OutputPrint=__name__ == "__main__")
        temp = get_temp_folder(__file__, "temp_missing_makedirs")
        dbf = os.path.join(temp, 'tr', 'td.db3')

        values = [
            {
                "name": "A",
                "age": 10,
                "score": 34.5
            },
            {
                "name": "B",
                "age": 20,
                "score": -34.5
            },
        ]
        df = pandas.DataFrame(values)
        db = Database.fill_sql_table(df, dbf, "newtable")
        db.execute_view("SELECT * FROM newtable")
        db.close()