Exemple #1
0
 def get_connection(self, dsn: str = None):
     """
     Getting the database connection and driver based on parameters
     """
     driver = self.Meta.driver if self.Meta.driver else "pg"
     if driver:
         # logging.debug('Getting data from Database: {}'.format(driver))
         # working with app labels
         try:
             app = self.Meta.app_label if self.Meta.app_label else None
         except AttributeError:
             app = None
         if app:
             # TODO: get formula to got app database list
             # db = DATABASES[app]
             db = {}
             try:
                 params = {
                     "user": db["USER"],
                     "password": db["PASSWORD"],
                     "host": db["HOST"],
                     "port": db["PORT"],
                     "database": db["NAME"],
                 }
                 if "SCHEMA" in db:
                     params["schema"] = db["SCHEMA"]
             except KeyError:
                 pass
         elif hasattr(self.Meta, "credentials"):
             params = self.Meta.credentials
             self.Meta.connection = AsyncDB(driver, params=params)
         elif dsn is not None:
             # print('HERE ', dsn)
             self.Meta.connection = AsyncDB(driver, dsn=dsn)
         return self.Meta.connection
Exemple #2
0
 async def _make_connection():
     try:
         self.connection = AsyncDB('pg', dsn=default_dsn)
         await self.connection.connection()
     except Exception as err:
         print(err)
         raise Exception(err)
async def test_connect(driver, params, event_loop):
    db = AsyncDB(driver, params=params, loop=event_loop)
    await db.connection()
    print('CONNECTED: ', db.is_connected() is True)
    result, error = await db.test_connection()
    print(result, error)
    print(type(result) == list)
    db.use('library')  # set database to work
    # # making a simple query:
    # result, error = await db.query('SELECT * from events')
    # print(error)
    # for row in result:
    #     print(row)
    # creation and insertion:
    await db.execute("CREATE TABLE tests (id int, name text, PRIMARY KEY(id))")
    ql = "INSERT INTO tests (id, name) VALUES(?, ?)"
    # prepare the statement:
    prepared, error = await db.prepare(ql)
    print(": prepare the statement: ", prepared)
    print(": Executing Insert of many entries: ")
    result, error = await db.execute(prepared, (2, "def"))
    result, error = await db.execute(prepared, (3, "ghi"))
    result, error = await db.execute(prepared, (4, "jkl"))
    examples = [(5, "mno"), (6, "pqr"), (7, "stu")]
    for example in examples:
        result, error = await db.execute(prepared, example)
        print(result, error)
    result, error = await db.query("SELECT * FROM tests")
    for row in result:
        print(row)
    await db.close()
Exemple #4
0
async def test_pool_by_params(driver, event_loop):
    db = AsyncDB(driver, params=params, loop=event_loop)
    assert db.is_connected() is False
    await db.connection()
    pytest.assume(db.is_connected() is True)
    await db.close()
    assert db.is_closed() is True
Exemple #5
0
async def test_connect(driver, event_loop):
    db = AsyncDB(driver, params=params, loop=event_loop)
    await db.connection()
    pytest.assume(db.is_connected() is True)
    result, error = await db.test_connection()
    pytest.assume(type(result) == list)
    await db.close()
Exemple #6
0
async def test_connect(driver, params, event_loop):
    db = AsyncDB(driver, params=params, loop=event_loop)
    await db.connection()
    print('CONNECTED: ', db.is_connected() is True)
    result, error = await db.test_connection()
    print(result, error)
    print(type(result) == list)
    await db.close()
Exemple #7
0
def adb():
    try:
        db = AsyncDB('postgres', dsn=asyncpg_url)
        if db:
            db.connect()
        return asyncORM(db=db)
    except Exception as err:
        raise Exception(err)
Exemple #8
0
async def test_connect(driver, event_loop):
    db = AsyncDB(driver, params=params, loop=event_loop)
    await db.connection()
    pytest.assume(db.is_connected() is True)
    result, error = await db.test_connection('bigtest')
    pytest.assume(not error)
    assert result == 'bigtest'
    await db.close()
Exemple #9
0
async def test_connect(driver, event_loop):
    db = AsyncDB(driver, params=PARAMS, loop=event_loop)
    await db.connection()
    pytest.assume(db.is_connected() is True)
    result, error = await db.test_connection()
    pytest.assume(type(result) == dict)
    pytest.assume(result['version'] == '4.4.2')
    await db.close()
    pytest.assume(db.is_connected() is False)
Exemple #10
0
    def create_problem_data(proid):
        db = AsyncDB(config.MOD_DBNAME, config.MOD_DBUSER, 
                     config.MOD_DBPASSWORD)

        cur = db.cursor()
        sqlstr = ('INSERT INTO "PMOD_TEST_MODE" ("proid", "modeid", '
                  '"content", "testmodeid") VALUES (%s, %s, %s, %s);')
        sqlarr = (proid, 1, '', None)
        cur.execute(sqlstr, sqlarr)        
async def test_connect(driver, event_loop):
    db = AsyncDB(driver, params=PARAMS, loop=event_loop)
    await db.connection()
    pytest.assume(db.is_connected() is True)
    result, error = await db.test_connection()
    pytest.assume(type(result) == list)
    row = result[0]
    pytest.assume(row['release_version'] == '3.11.8')
    await db.close()
    pytest.assume(db.is_connected() is False)
    def __init__(self, pubkey, privkey=None):
        super().__init__()

        self.set_verifykey(pubkey)
        if privkey != None:
            self.set_signkey(privkey)

        TOJAuth.instance = self
        TOJAuth.db = AsyncDB(config.CORE_DBNAME, config.CORE_DBUSER,
                             config.CORE_DBPASSWORD)
 def __init__(self, dsn="", session: AbstractSession = None, loop=None):
     if loop:
         self._loop = loop
     else:
         self._loop = asyncio.get_event_loop()
     self._result = {}
     self._session_key = ""
     self._session_id = None
     self._loop.set_exception_handler(nav_exception_handler)
     # TODO: define other session backend
     self._cache = redis = AsyncDB("redis", dsn=dsn)
     self._session = session
async def test_huge_query(event_loop):
    sql = 'SELECT * FROM trocplaces.stores'
    check_conn = None
    db = AsyncDB(DRIVER, params=params, loop=event_loop)
    async with await db.connection() as conn:
        result, error = await conn.execute("SET TIMEZONE TO 'America/New_York'")
        pytest.assume(not error)
        result, error = await conn.query(sql)
        pytest.assume(not error)
        pytest.assume(result is not None)
        check_conn = conn
    pytest.assume(check_conn is not None)
async def test_pool_connect(event_loop):
    db = AsyncDB(DRIVER, params=params, loop=event_loop)
    pytest.assume(db.is_connected() is False)
    await db.connection()
    pytest.assume(db.is_connected() == True)
    result, error = await db.execute("SELECT 1")
    print(result)
    pytest.assume(result == 'SELECT 1')
    result, error = await db.test_connection()
    print(result, error)
    row = result[0]
    pytest.assume(row[0] == 1)
    await db.close()
    assert (not db.get_connection())
    def __init__(self,mod_idendesc,get_link_fn):
        self.DATATYPE_CHALLENGE = 1
        self.DATATYPE_STATUS = 2

        self.DATASTSTUS_PEND = 1
        self.DATASTSTUS_WAIT = 2
        self.DATASTSTUS_DONE = 3

        self._idendesc = mod_idendesc
        self.get_link = get_link_fn
        self.db = AsyncDB(config.CORE_DBNAME,config.CORE_DBUSER,
                          config.CORE_DBPASSWORD)

        self.collector_namemap = {}
    def __init__(self, mod_idendesc, get_link_fn):
        Notice.db = AsyncDB(config.CORE_DBNAME, config.CORE_DBUSER,
                            config.CORE_DBPASSWORD)
        Notice._idendesc = mod_idendesc
        self.get_link = get_link_fn

        Proxy.instance.register_call('core/notice/', 'list_notice',
                                     self.list_notice)
        Proxy.instance.register_call('core/notice/', 'read_notice',
                                     self.read_notice)
        Proxy.instance.register_call('core/notice/', 'del_notice',
                                     self.del_notice)
        Proxy.instance.register_call('core/notice/', 'get_unseen_count',
                                     self.get_unseen_count)
    def __init__(self, mod_idendesc, get_link_fn):
        TestdataMg.db = AsyncDB(config.CORE_DBNAME, config.CORE_DBUSER,
                                config.CORE_DBPASSWORD)
        TestdataMg._idendesc = mod_idendesc
        self.get_link = get_link_fn

        Proxy.instance.register_call('core/testdata/', 'add_testdata',
                                     self.add_testdata)
        Proxy.instance.register_call('core/testdata/', 'update_testdata',
                                     self.update_testdata)
        Proxy.instance.register_call('core/testdata/', 'get_testdata',
                                     self.get_testdata)
        Proxy.instance.register_call('core/testdata/', 'del_testdata',
                                     self.del_testdata)
Exemple #19
0
    def __init__(self, mod_idendesc, get_link_fn, proid):
        self._proid = proid
        self._idendesc = mod_idendesc
        self.get_link = get_link_fn

        self._proinfo = mod.ProblemMg.get_problem_info_by_proid(self._proid)
        self._accessid = mod.ProblemMg.get_accessid_by_proid(self._proid)

        self.db = AsyncDB(config.MOD_DBNAME, config.MOD_DBUSER, 
                          config.MOD_DBPASSWORD)

        self._reg_path = 'pro/' + str(self._proid) + '/'

        Proxy.instance.register_call(
            self._reg_path, 'view', self.view)
        Proxy.instance.register_call(
            self._reg_path, 'add_mode', self.add_mode)
        Proxy.instance.register_call(
            self._reg_path, 'del_mode', self.del_mode)
        Proxy.instance.register_call(
            self._reg_path, 'set_mode', self.set_mode)
        Proxy.instance.register_call(
            self._reg_path, 'get_mode', self.get_mode)
        Proxy.instance.register_call(
            self._reg_path, 'list_mode', self.list_mode)
        Proxy.instance.register_call(
            self._reg_path, 'add_testmode', self.add_testmode)
        Proxy.instance.register_call(
            self._reg_path, 'del_testmode', self.del_testmode)
        Proxy.instance.register_call(
            self._reg_path, 'set_testmode', self.set_testmode)
        Proxy.instance.register_call(
            self._reg_path, 'get_testmode', self.get_testmode)
        Proxy.instance.register_call(
            self._reg_path, 'list_testmode', self.list_testmode)
        Proxy.instance.register_call(
            self._reg_path, 'create_testdata', self.create_testdata)
        Proxy.instance.register_call(
            self._reg_path, 'delete_testdata', self.delete_testdata)
        Proxy.instance.register_call(
            self._reg_path, 'get_testdata', self.get_testdata)
        Proxy.instance.register_call(
            self._reg_path, 'list_testdata', self.list_testdata)
        Proxy.instance.register_call(
            self._reg_path, 'set_testdata', self.set_testdata)
        Proxy.instance.register_call(
            self._reg_path, 'set_testmode_testdata', self.set_testdata)
        Proxy.instance.register_call(
            self._reg_path, 'get_testmode_testdata', self.get_testdata)
Exemple #20
0
    def delete_problem_data(proid):
        db = AsyncDB(config.MOD_DBNAME, config.MOD_DBUSER, 
                     config.MOD_DBPASSWORD)

        cur = db.cursor()
        sqlstr = ('DELETE FROM "PMOD_TEST_MODE" WHERE "proid" = %s;')
        sqlarr = (proid, )
        cur.execute(sqlstr, sqlarr)

        sqlstr = ('DELETE FROM "PMOD_TEST_TESTMODE" WHERE "proid" = %s;')
        sqlarr = (proid, )
        cur.execute(sqlstr, sqlarr)

        sqlstr = ('DELETE FROM "PMOD_TEST_TESTDATA" WHERE "proid" = %s;')
        sqlarr = (proid, )
        cur.execute(sqlstr, sqlarr)
Exemple #21
0
    def __init__(self, mod_idendesc, get_link_fn, sqid):
        self._sqid = sqid
        self._idendesc = mod_idendesc
        self.get_link = get_link_fn

        self._accessid = mod.SquareMg.get_accessid_by_sqid(self._sqid)

        self.db = AsyncDB(config.MOD_DBNAME, config.MOD_DBUSER,
                          config.MOD_DBPASSWORD)

        self._reg_path = 'sq/' + str(self._sqid) + '/'

        Proxy.instance.register_call(self._reg_path, 'list_jurank',
                                     self.list_jurank)
        Proxy.instance.register_call(self._reg_path, 'update_result',
                                     self.update_result)
Exemple #22
0
    def __init__(self, mod_idendesc, get_link_fn):
        Mail.db = AsyncDB(config.CORE_DBNAME, config.CORE_DBUSER, 
                config.CORE_DBPASSWORD)
        Mail._idendesc = mod_idendesc
        self.get_link = get_link_fn

        Proxy.instance.register_call(
            'core/mail/', 'send_mail', self.send_mail)
        Proxy.instance.register_call(
            'core/mail/', 'recv_mail', self.recv_mail)
        Proxy.instance.register_call(
            'core/mail/', 'list_mail', self.list_mail)
        Proxy.instance.register_call(
            'core/mail/', 'del_mail', self.del_mail)
        Proxy.instance.register_call(
            'core/mail/', 'get_mail_count', self.get_mail_count)
Exemple #23
0
    def __init__(self, mod_idendesc, get_link_fn):
        UserMg.db = AsyncDB(config.CORE_DBNAME, config.CORE_DBUSER, 
                config.CORE_DBPASSWORD)
        UserMg._idendesc = mod_idendesc
        self.get_link = get_link_fn

        Proxy.instance.register_call(
            'core/user/', 'register', self.register)
        Proxy.instance.register_call(
            'core/user/', 'login', self.login)
        Proxy.instance.register_call(
            'core/user/', 'cookie_login', self.cookie_login)
        Proxy.instance.register_call(
            'core/user/', 'get_user_info', self.get_user_info)
        Proxy.instance.register_call(
            'core/user/', 'set_user_info', self.set_user_info)
        Proxy.instance.register_call(
            'core/user/', 'change_user_password', self.change_user_password)
        Proxy.instance.register_call(
            'core/user/', 'list_auth', self.list_auth)
    def __init__(self, mod_idendesc, get_link_fn):
        ProblemMg.db = AsyncDB(config.CORE_DBNAME, config.CORE_DBUSER,
                               config.CORE_DBPASSWORD)
        ProblemMg._idendesc = mod_idendesc
        self.get_link = get_link_fn
        self._pmod_list = {}

        Proxy.instance.register_filter('pro/', self.pmod_filter)

        Proxy.instance.register_call('core/problem/', 'create_problem',
                                     self.create_problem)
        Proxy.instance.register_call('core/problem/', 'delete_problem',
                                     self.delete_problem)
        Proxy.instance.register_call('core/problem/', 'set_problem',
                                     self.imc_set_problem)
        Proxy.instance.register_call('core/problem/', 'list_problem',
                                     self.list_problem)
        Proxy.instance.register_call('core/problem/', 'get_problem_info',
                                     self.get_problem_info)
        Proxy.instance.register_call('core/problem/', 'list_pmod',
                                     self.list_pmod)
Exemple #25
0
loop = asyncio.get_event_loop()
asyncio.set_event_loop(loop)
loop.set_debug(True)
import iso8601
logging.basicConfig(level=logging.INFO,
                    format="%(name)s - %(levelname)s - %(message)s")
logger = logging.getLogger(__name__)

from asyncdb import AsyncDB, AsyncPool
from asyncdb.exceptions import NoDataFound, ProviderError
from asyncdb.providers.rethink import rethink

params = {"host": "localhost", "port": "28015", "db": "troc"}

rt = AsyncDB("rethink", params=params, loop=loop)

data = [{
    'inserted_at': iso8601.parse_date('2020-12-09 04:23:52.441312+0000'),
    'description': 'TERRE HAUTE-WM - #4235',
    'company_id': 1,
    'territory_id': 2.0,
    'territory_name': '2-Midwest',
    'region_name': 'William Pipkin',
    'district_id': 235.0,
    'district_name': '235-IN/IL Border',
    'market_id': 2355.0,
    'market_name': 'IN/IL Border-2355',
    'store_id': 4235.0,
    'store_name': 'TERRE HAUTE-WM - #4235',
    'num_stores': 1,
Exemple #26
0
async def conn(event_loop):
    db = AsyncDB('pg', dsn=asyncpg_url, loop=event_loop)
    await db.connection()
    yield db
    await db.close()
Exemple #27
0
async def test_pool_by_params(driver, event_loop):
    db = AsyncDB(driver, params=params, loop=event_loop)
    assert db.is_connected() is False
Exemple #28
0
async def conn(event_loop):
    db = AsyncDB(DRIVER, params=params, loop=event_loop)
    await db.connection()
    yield db
    await db.close()
    "host": "localhost",
    "port": "3306",
    "database": "test",
    "DEBUG": True,
}

# With mysqlPool
pool = mysqlPool(loop=loop, params=params)
loop.run_until_complete(pool.connect())
db = loop.run_until_complete(pool.acquire())
conn = db.get_connection()
loop.run_until_complete(pool.release())
pool.terminate()

# With AsyncDB
pool = AsyncDB("mysql", loop=loop, params=params)
conn = loop.run_until_complete(pool.connection())
cursor = loop.run_until_complete(pool.cursor())

result, error = loop.run_until_complete(pool.execute("TRUNCATE TABLE color"))
print("-- execute", result)

data = [
    ("Red", "#ff0000"),
    ("Green", "#00ff00"),
    ("Blue", "#0000ff"),
    ("Cyan", "#00ffff"),
    ("Magenta", "#ff00ff"),
    ("Yellow", "#ffff00"),
    ("Black", "#000000"),
    ("White", "#ffffff"),
            ("SVO", "Moscow", "Russia"),
        ]
        airports = "INSERT INTO airports VALUES(?, ?, ?)"
        await conn.executemany(airports, data)
        a_country = "United States"
        a_city = "Moscow"
        query = "SELECT * FROM airports WHERE country=? OR city=?"
        async with await conn.fetch(query, (a_country, a_city)) as result:
            async for row in result:
                print(row)
        # using prepare
        print('Using Cursor Objects: ')
        b_country = 'France'
        b_city = 'London'
        async with conn.cursor(query, (b_country, b_city)) as cursor:
            print("using iterator: ")
            async for row in cursor:
                print(row)
            # its an iterable
            print("Using Context Manager: ")
            async with cursor:
                print(await cursor.fetchall())
            # this returns a cursor based object


if __name__ == "__main__":
    loop = asyncio.get_event_loop()
    loop.set_exception_handler(default_exception_handler)
    driver = AsyncDB("sqlite", params={"database": ":memory:"}, loop=loop)
    asyncio.run(connect(driver))