Skip to content

Commit

Permalink
handle cursors
Browse files Browse the repository at this point in the history
  • Loading branch information
3nids committed Apr 9, 2024
1 parent 2f298eb commit f303621
Show file tree
Hide file tree
Showing 4 changed files with 29 additions and 6 deletions.
13 changes: 11 additions & 2 deletions datamodel/test/test_network.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
import psycopg
except ImportError:
import psycopg2 as psycopg
import psycopg2.exras as psycopg_extras

from .utils import DEFAULT_PG_SERVICE, DbTestBase

Expand Down Expand Up @@ -91,7 +92,11 @@ def downstream_nodes_depths(self, node_id):
SELECT obj_id, depth
FROM downstream;
"""
cur = self.cursor(row_factory=psycopg.rows.dict_row)
try:
cur = self.cursor(row_factory=psycopg.rows.dict_row)
except AttributeError:
# remove when dropping psycopg2 support
cur = self.cursor(cursor_factory=psycopg_extras.DictCursor)
cur.execute(query, (node_id,))
return {row["obj_id"]: row["depth"] for row in cur.fetchall()}

Expand All @@ -118,7 +123,11 @@ def upstream_nodes_depths(self, node_id):
SELECT obj_id, depth
FROM upstream
"""
cur = self.cursor(row_factory=psycopg.rows.dict_row)
try:
cur = self.cursor(row_factory=psycopg.rows.dict_row)
except AttributeError:
# remove when dropping psycopg2 support
cur = self.cursor(cursor_factory=psycopg_extras.DictCursor)
cur.execute(query, (node_id,))
return {row["obj_id"]: row["depth"] for row in cur.fetchall()}

Expand Down
7 changes: 6 additions & 1 deletion datamodel/test/test_removed_fields.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
import psycopg
except ImportError:
import psycopg2 as psycopg
import psycopg2.exras as psycopg_extras

from .utils import DEFAULT_PG_SERVICE, DbTestBase

Expand All @@ -20,7 +21,11 @@ def setUpClass(cls):
cls.conn = psycopg.connect(f"service={pgservice}")

def test_dataowner(self):
cur = self.conn.cursor(row_factory=psycopg.rows.dict_row)
try:
cur = self.conn.cursor(row_factory=psycopg.rows.dict_row)
except AttributeError:
# remove when dropping psycopg2 support
cur = self.conn.cursor(cursor_factory=psycopg_extras.DictCursor)

cur.execute("SELECT * FROM tww_od.wastewater_structure LIMIT 1")
colnames = [desc[0] for desc in cur.description]
Expand Down
7 changes: 6 additions & 1 deletion datamodel/test/test_views.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
import psycopg
except ImportError:
import psycopg2 as psycopg
import psycopg2.exras as psycopg_extras

from .utils import DEFAULT_PG_SERVICE, DbTestBase

Expand Down Expand Up @@ -95,7 +96,11 @@ def test_vw_tww_wastewater_structure(self):

self.update_check("vw_tww_wastewater_structure", row, obj_id)

cur = self.cursor(row_factory=psycopg.rows.dict_row)
try:
cur = self.cursor(row_factory=psycopg.rows.dict_row)
except AttributeError:
# remove when dropping psycopg2 support
cur = self.cursor(cursor_factory=psycopg_extras.DictCursor)

cur.execute(
"SELECT * FROM tww_od.wastewater_networkelement NE LEFT JOIN tww_od.wastewater_node NO ON NO.obj_id = NE.obj_id WHERE fk_wastewater_structure='{obj_id}' ".format(
Expand Down
8 changes: 6 additions & 2 deletions datamodel/test/utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
import psycopg
except ImportError:
import psycopg2 as psycopg
import psycopg2.exras as psycopg_extras

DEFAULT_PG_SERVICE = "pg_tww"

Expand All @@ -26,8 +27,11 @@ def geom_as_text(cls, wkb: str) -> str:

@classmethod
def select(cls, table, obj_id, schema="tww_app"):
cur = cls.conn.cursor(row_factory=psycopg.rows.dict_row)
# cur = cls.conn.cursor(cursor_factory=psycopg2.extras.DictCursor)
try:
cur = cls.conn.cursor(row_factory=psycopg.rows.dict_row)
except AttributeError:
# remove when dropping psycopg2 support
cur = cls.conn.cursor(cursor_factory=psycopg_extras.DictCursor)
cur.execute(f"SELECT * FROM {schema}.{table} WHERE obj_id=%(obj_id)s", {"obj_id": obj_id})
return cur.fetchone()

Expand Down

0 comments on commit f303621

Please sign in to comment.