@pytest.mark.parametrize("pgtype", range_names)
@pytest.mark.parametrize("fmt_in", PyFormat)
def test_dump_builtin_empty(conn, pgtype, fmt_in):
- r = Range(empty=True)
+ r = Range(empty=True) # type: ignore[var-annotated]
cur = conn.execute(f"select 'empty'::{pgtype} = %{fmt_in}", (r,))
assert cur.fetchone()[0] is True
],
)
def test_dump_builtin_array(conn, pgtype, fmt_in):
- r1 = Range(empty=True)
- r2 = Range(bounds="()")
+ r1 = Range(empty=True) # type: ignore[var-annotated]
+ r2 = Range(bounds="()") # type: ignore[var-annotated]
cur = conn.execute(
f"select array['empty'::{pgtype}, '(,)'::{pgtype}] = %{fmt_in}",
([r1, r2],),
@pytest.mark.parametrize("pgtype", range_names)
@pytest.mark.parametrize("fmt_in", PyFormat)
def test_dump_builtin_array_with_cast(conn, pgtype, fmt_in):
- r1 = Range(empty=True)
- r2 = Range(bounds="()")
+ r1 = Range(empty=True) # type: ignore[var-annotated]
+ r2 = Range(bounds="()") # type: ignore[var-annotated]
cur = conn.execute(
f"select array['empty'::{pgtype}, '(,)'::{pgtype}] = %{fmt_in}::{pgtype}[]",
([r1, r2],),
@pytest.mark.parametrize("pgtype, min, max, bounds", samples)
@pytest.mark.parametrize("fmt_in", PyFormat)
def test_dump_builtin_range(conn, pgtype, min, max, bounds, fmt_in):
- r = Range(min, max, bounds)
+ r = Range(min, max, bounds) # type: ignore[var-annotated]
sub = type2sub[pgtype]
cur = conn.execute(
f"select {pgtype}(%s::{sub}, %s::{sub}, %s) = %{fmt_in}",
@pytest.mark.parametrize("pgtype", range_names)
@pytest.mark.parametrize("fmt_out", pq.Format)
def test_load_builtin_empty(conn, pgtype, fmt_out):
- r = Range(empty=True)
+ r = Range(empty=True) # type: ignore[var-annotated]
cur = conn.cursor(binary=fmt_out)
(got,) = cur.execute(f"select 'empty'::{pgtype}").fetchone()
assert type(got) is Range
@pytest.mark.parametrize("pgtype", range_names)
@pytest.mark.parametrize("fmt_out", pq.Format)
def test_load_builtin_inf(conn, pgtype, fmt_out):
- r = Range(bounds="()")
+ r = Range(bounds="()") # type: ignore[var-annotated]
cur = conn.cursor(binary=fmt_out)
(got,) = cur.execute(f"select '(,)'::{pgtype}").fetchone()
assert type(got) is Range
@pytest.mark.parametrize("pgtype", range_names)
@pytest.mark.parametrize("fmt_out", pq.Format)
def test_load_builtin_array(conn, pgtype, fmt_out):
- r1 = Range(empty=True)
- r2 = Range(bounds="()")
+ r1 = Range(empty=True) # type: ignore[var-annotated]
+ r2 = Range(bounds="()") # type: ignore[var-annotated]
cur = conn.cursor(binary=fmt_out)
(got,) = cur.execute(
f"select array['empty'::{pgtype}, '(,)'::{pgtype}]"
@pytest.mark.parametrize("pgtype, min, max, bounds", samples)
@pytest.mark.parametrize("fmt_out", pq.Format)
def test_load_builtin_range(conn, pgtype, min, max, bounds, fmt_out):
- r = Range(min, max, bounds)
+ r = Range(min, max, bounds) # type: ignore[var-annotated]
sub = type2sub[pgtype]
cur = conn.cursor(binary=fmt_out)
cur.execute(
if bounds != "empty":
min = dt.date(*map(int, min.split(","))) if min else None
max = dt.date(*map(int, max.split(","))) if max else None
- r = Range(min, max, bounds)
+ r = Range[dt.date](min, max, bounds)
else:
r = Range(empty=True)
cur = conn.cursor()
cur.execute(f"create table copyrange (id serial primary key, r {pgtype})")
- r = Range(empty=True) if bounds == "empty" else Range(None, None, bounds)
+ if bounds == "empty":
+ r = Range(empty=True) # type: ignore[var-annotated]
+ else:
+ r = Range(None, None, bounds)
with cur.copy(
f"copy copyrange (r) from stdin (format {format.name})"
info = RangeInfo.fetch(conn, "testrange")
register_range(info, conn)
- r = Range(empty=True)
+ r = Range[str](empty=True)
cur = conn.execute("select 'empty'::testrange = %s", (r,))
assert cur.fetchone()[0] is True
"select testrange(chr(%(low)s::int), chr(%(up)s::int))",
{"low": i, "up": i + 1},
)
- got = cur.fetchone()[0]
+ got: Range[str] = cur.fetchone()[0]
assert isinstance(got, Range)
- assert ord(got.lower) == i
- assert ord(got.upper) == i + 1
+ assert got.lower and ord(got.lower) == i
+ assert got.upper and ord(got.upper) == i + 1
@pytest.mark.parametrize("fmt_out", pq.Format)
class TestRangeObject:
def test_noparam(self):
- r = Range()
+ r = Range() # type: ignore[var-annotated]
assert not r.isempty
assert r.lower is None
assert not r.upper_inc
def test_empty(self):
- r = Range(empty=True)
+ r = Range(empty=True) # type: ignore[var-annotated]
assert r.isempty
assert r.lower is None
Range(bounds="[}")
def test_in(self):
- r = Range(empty=True)
+ r = Range[int](empty=True)
assert 10 not in r
+ assert "x" not in r # type: ignore[operator]
r = Range()
assert 10 in r