Skip to content

Commit

Permalink
Move to src style layout
Browse files Browse the repository at this point in the history
Also use Hatch rather than setuptools.

This means that if the source distribution has a directory added to it
(as is needed for packaging for OS distributions) the package can still
be built.
  • Loading branch information
tlocke committed Apr 1, 2024
1 parent c789c98 commit d45b9e1
Show file tree
Hide file tree
Showing 15 changed files with 82 additions and 34 deletions.
9 changes: 6 additions & 3 deletions pyproject.toml
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
[build-system]
requires = [
"setuptools >= 65",
"versioningit >= 2.1.0",
"hatchling",
"versioningit >= 3.1.0",
]
build-backend = "setuptools.build_meta"
build-backend = "hatchling.build"

[project]
name = "pg8000"
Expand Down Expand Up @@ -38,6 +38,9 @@ dynamic = ["version"]
[project.urls]
Homepage = "https://github.com/tlocke/pg8000"

[tool.hatch.version]
source = "versioningit"

[tool.versioningit]

[tool.versioningit.vcs]
Expand Down
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
30 changes: 23 additions & 7 deletions test/dbapi/auth/test_scram-sha-256.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,29 @@
from pg8000.dbapi import DatabaseError, connect

# This requires a line in pg_hba.conf that requires scram-sha-256 for the
# database scram-sha-256
# database pg8000_scram-sha-256

DB = "pg8000_scram_sha_256"

def test_scram_sha_256(db_kwargs):
db_kwargs["database"] = "pg8000_scram_sha_256"

# Should only raise an exception saying db doesn't exist
with pytest.raises(DatabaseError, match="3D000"):
with connect(**db_kwargs) as con:
con.close()
@pytest.fixture
def setup(con, cursor):
try:
cursor.execute(f"CREATE DATABASE {DB}")
except DatabaseError:
con.rollback()

con.autocommit = True
con.rollback()
cursor.execute("ALTER SYSTEM SET ssl = off")
cursor.execute("SELECT pg_reload_conf()")
yield
cursor.execute("ALTER SYSTEM SET ssl = on")
cursor.execute("SELECT pg_reload_conf()")


def test_scram_sha_256(setup, db_kwargs):
db_kwargs["database"] = DB

with connect(**db_kwargs):
pass
36 changes: 25 additions & 11 deletions test/dbapi/auth/test_scram-sha-256_ssl.py
Original file line number Diff line number Diff line change
@@ -1,22 +1,36 @@
import ssl

from ssl import CERT_NONE, create_default_context
import pytest

from pg8000.dbapi import DatabaseError, connect

# This requires a line in pg_hba.conf that requires scram-sha-256 for the
# database scram-sha-256
# database pg8000_scram-sha-256

DB = "pg8000_scram_sha_256"


@pytest.fixture
def setup(con, cursor):
try:
cursor.execute(f"CREATE DATABASE {DB}")
except DatabaseError:
con.rollback()


def test_scram_sha_256(db_kwargs):
context = ssl.create_default_context()
context.check_hostname = False
context.verify_mode = ssl.CERT_NONE
db_kwargs["database"] = "pg8000_scram_sha_256"

con = connect(**db_kwargs)
con.close()


def test_scram_sha_256_ssl_context(db_kwargs):
ssl_context = create_default_context()
ssl_context.check_hostname = False
ssl_context.verify_mode = CERT_NONE

db_kwargs["ssl_context"] = context
db_kwargs["database"] = "pg8000_scram_sha_256"
db_kwargs["ssl_context"] = ssl_context

# Should only raise an exception saying db doesn't exist
with pytest.raises(DatabaseError, match="3D000"):
with connect(**db_kwargs) as con:
con.close()
con = connect(**db_kwargs)
con.close()
9 changes: 6 additions & 3 deletions test/dbapi/test_connection.py
Original file line number Diff line number Diff line change
Expand Up @@ -30,9 +30,12 @@ def test_Connection_plain_socket(db_kwargs):
host = db_kwargs.get("host", "localhost")
port = db_kwargs.get("port", 5432)
with socket.create_connection((host, port)) as sock:
user = db_kwargs["user"]
password = db_kwargs["password"]
conn_params = {"sock": sock, "user": user, "password": password}
conn_params = {
"sock": sock,
"user": db_kwargs["user"],
"password": db_kwargs["password"],
"ssl_context": False,
}

con = connect(**conn_params)
cur = con.cursor()
Expand Down
21 changes: 15 additions & 6 deletions test/legacy/test_connection.py
Original file line number Diff line number Diff line change
Expand Up @@ -185,15 +185,24 @@ def test_application_name_bytearray(db_kwargs):


# This requires a line in pg_hba.conf that requires scram-sha-256 for the
# database scram-sha-256
# database pg8000_scram_sha_256

DB = "pg8000_scram_sha_256"

def test_scram_sha_256(db_kwargs):
db_kwargs["database"] = "pg8000_scram_sha_256"

# Should only raise an exception saying db doesn't exist
with pytest.raises(ProgrammingError, match="3D000"):
connect(**db_kwargs)
@pytest.fixture
def setup(con, cursor):
try:
cursor.execute(f"CREATE DATABASE {DB}")
except DatabaseError:
con.rollback()


def test_scram_sha_256(setup, db_kwargs):
db_kwargs["database"] = DB

con = connect(**db_kwargs)
con.close()


@pytest.mark.parametrize(
Expand Down
2 changes: 1 addition & 1 deletion test/native/auth/test_scram-sha-256.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
from pg8000.native import Connection, DatabaseError, InterfaceError

# This requires a line in pg_hba.conf that requires scram-sha-256 for the
# database scram_sha_256
# database pg8000_scram_sha_256

DB = "pg8000_scram_sha_256"

Expand Down
9 changes: 6 additions & 3 deletions test/native/test_connection.py
Original file line number Diff line number Diff line change
Expand Up @@ -29,9 +29,12 @@ def test_Connection_plain_socket(db_kwargs):
host = db_kwargs.get("host", "localhost")
port = db_kwargs.get("port", 5432)
with socket.create_connection((host, port)) as sock:
user = db_kwargs["user"]
password = db_kwargs["password"]
conn_params = {"sock": sock, "user": user, "password": password}
conn_params = {
"sock": sock,
"user": db_kwargs["user"],
"password": db_kwargs["password"],
"ssl_context": False,
}

con = Connection(**conn_params)

Expand Down

0 comments on commit d45b9e1

Please sign in to comment.