Skip to content

Commit

Permalink
ci: Add ruff check and update workflows (#43)
Browse files Browse the repository at this point in the history
* ci: Add ruff check and update workflows

Minimum python set to 3.9

* test: rename TableTest to TestTable

pytest is confused about this class.  It think it's a testing
class because it started with "Test...".  So, lets rename it
to remove the confusion
  • Loading branch information
ketiltrout authored Jul 29, 2024
1 parent 22ff703 commit 5030a52
Show file tree
Hide file tree
Showing 8 changed files with 85 additions and 82 deletions.
40 changes: 31 additions & 9 deletions .github/workflows/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,15 +9,15 @@ on:

jobs:

lint-code:
black-check:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v4

- name: Set up Python 3.8
uses: actions/setup-python@v1
- name: Set up Python 3.9
uses: actions/setup-python@v5
with:
python-version: 3.8
python-version: "3.9"

- name: Install black
run: pip install black
Expand All @@ -26,15 +26,37 @@ jobs:
run: |
black --check .
ruff-check:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4

- name: Set up Python 3.9
uses: actions/setup-python@v5
with:
python-version: "3.9"

- name: Install chimedb.core
run: pip install .

- name: Install ruff
run: pip install ruff

- name: Check code with ruff
run: ruff check .

run-tests:
strategy:
matrix:
python-version: ["3.9", "3.12"]
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v4

- name: Set up Python 3.8
uses: actions/setup-python@v1
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v5
with:
python-version: 3.8
python-version: ${{ matrix.python-version }}

- name: Install chimedb
run: |
Expand Down
18 changes: 18 additions & 0 deletions chimedb/core/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -122,3 +122,21 @@
from . import _version

__version__ = _version.get_versions()["version"]
del _version

__all__ = [
"CHIMEdbError",
"NotFoundError",
"ValidationError",
"InconsistencyError",
"AlreadyExistsError",
"NoRouteToDatabase",
"ConnectionError",
"connect",
"proxy",
"close",
"test_enable",
"atomic",
"mediawiki",
"__version__",
]
1 change: 0 additions & 1 deletion chimedb/core/context.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@

import logging
import functools
import peewee as pw
from . import connect, proxy

# Set module logger.
Expand Down
1 change: 1 addition & 0 deletions setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@
"future",
"PyYAML",
],
python_requires=">=3.9",
author="The CHIME Collaboration",
author_email="[email protected]",
description="Low-level CHIME database access",
Expand Down
4 changes: 0 additions & 4 deletions test/test_current_connector.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,3 @@ def test_uninitialised_ro(self):

def test_uninitialised_rw(self):
self.assertEqual(connectdb.current_connector(read_write=True), None)


if __name__ == "__main__":
unittest.main()
26 changes: 11 additions & 15 deletions test/test_decorator.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
from chimedb.core.orm import base_model


class TestTable(base_model):
class TableTest(base_model):
datum = pw.IntegerField()


Expand All @@ -32,8 +32,8 @@ def setUp(self):
conn = sqlite3.connect(self.dbfile)
curs = conn.cursor()

curs.execute("CREATE TABLE testtable (datum INTEGER)")
curs.execute("INSERT INTO testtable VALUES (?)", (datum_value,))
curs.execute("CREATE TABLE tabletest (datum INTEGER)")
curs.execute("INSERT INTO tabletest VALUES (?)", (datum_value,))

conn.commit()
conn.close()
Expand All @@ -46,7 +46,7 @@ def setUp(self):
def test_atomic_rollback(self):
@db.atomic(read_write=True)
def inside_atomic():
TestTable.update(datum=datum_value + 1).execute()
TableTest.update(datum=datum_value + 1).execute()

db.proxy.rollback()

Expand All @@ -56,12 +56,12 @@ def inside_atomic():
# Check
db.close()
db.connect()
self.assertEqual(TestTable.select(TestTable.datum).scalar(), datum_value)
self.assertEqual(TableTest.select(TableTest.datum).scalar(), datum_value)

def test_atomic_commit(self):
@db.atomic(read_write=True)
def inside_atomic():
TestTable.update(datum=datum_value + 1).execute()
TableTest.update(datum=datum_value + 1).execute()

db.proxy.commit()

Expand All @@ -71,12 +71,12 @@ def inside_atomic():
# Check
db.close()
db.connect()
self.assertEqual(TestTable.select(TestTable.datum).scalar(), datum_value + 1)
self.assertEqual(TableTest.select(TableTest.datum).scalar(), datum_value + 1)

def test_atomic_raise(self):
@db.atomic(read_write=True)
def inside_atomic():
TestTable.update(datum=datum_value + 1).execute()
TableTest.update(datum=datum_value + 1).execute()

raise RuntimeError

Expand All @@ -87,21 +87,17 @@ def inside_atomic():
# Check
db.close()
db.connect()
self.assertEqual(TestTable.select(TestTable.datum).scalar(), datum_value)
self.assertEqual(TableTest.select(TableTest.datum).scalar(), datum_value)

def test_atomic_autocommit(self):
@db.atomic(read_write=True)
def inside_atomic():
TestTable.update(datum=datum_value + 1).execute()
TableTest.update(datum=datum_value + 1).execute()

# Execute
inside_atomic()

# Check
db.close()
db.connect()
self.assertEqual(TestTable.select(TestTable.datum).scalar(), datum_value + 1)


if __name__ == "__main__":
unittest.main()
self.assertEqual(TableTest.select(TableTest.datum).scalar(), datum_value + 1)
20 changes: 8 additions & 12 deletions test/test_sqlite.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
from chimedb.core.orm import base_model


class TestTable(base_model):
class TableTest(base_model):
datum = pw.IntegerField()


Expand All @@ -31,8 +31,8 @@ def setUp(self):
conn = sqlite3.connect(self.dbfile)
curs = conn.cursor()

curs.execute("CREATE TABLE testtable (datum INTEGER)")
curs.execute("INSERT INTO testtable VALUES (?)", (datum_value,))
curs.execute("CREATE TABLE tabletest (datum INTEGER)")
curs.execute("INSERT INTO tabletest VALUES (?)", (datum_value,))

conn.commit()
conn.close()
Expand All @@ -47,7 +47,7 @@ def setUp(self):

def test_connect(self):
db.connect()
self.assertEqual(TestTable.select(TestTable.datum).scalar(), datum_value)
self.assertEqual(TableTest.select(TableTest.datum).scalar(), datum_value)

def test_connect_uri(self):
os.environ["CHIMEDB_TEST_SQLITE"] = "file:" + self.dbfile
Expand All @@ -56,18 +56,18 @@ def test_connect_uri(self):
def test_connect_ro(self):
db.connect()
with self.assertRaises(pw.OperationalError):
TestTable.update(datum=datum_value * 2).execute()
TableTest.update(datum=datum_value * 2).execute()

def test_connect_rw(self):
db.connect(read_write=True)
TestTable.update(datum=datum_value * 2).execute()
self.assertEqual(TestTable.select(TestTable.datum).scalar(), datum_value * 2)
TableTest.update(datum=datum_value * 2).execute()
self.assertEqual(TableTest.select(TableTest.datum).scalar(), datum_value * 2)

def test_switch_connection(self):
self.test_connect_ro()
self.test_connect_rw()
self.test_connect_ro()
self.assertEqual(TestTable.select(TestTable.datum).scalar(), datum_value * 2)
self.assertEqual(TableTest.select(TableTest.datum).scalar(), datum_value * 2)

def test_rcfile(self):
# Create a temporary file
Expand All @@ -90,7 +90,3 @@ def test_rcfile(self):
# connectors correctly.
self.test_switch_connection()
os.unlink(rcfile)


if __name__ == "__main__":
unittest.main()
57 changes: 16 additions & 41 deletions test/test_test_enable.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
from chimedb.core.orm import base_model


class TestTable(base_model):
class TableTest(base_model):
datum = pw.IntegerField()


Expand Down Expand Up @@ -45,11 +45,11 @@ def test_chimedb_test_sqlite(self):
db.test_enable()

db.connect(read_write=True)
db.proxy.create_tables([TestTable])
TestTable.create(datum=datum_value)
db.proxy.create_tables([TableTest])
TableTest.create(datum=datum_value)

# Did that work?
self.assertEqual(TestTable.select(TestTable.datum).scalar(), datum_value)
self.assertEqual(TableTest.select(TableTest.datum).scalar(), datum_value)
db.close()

# The on-disk sqlite database should not be empty anymore
Expand All @@ -66,32 +66,11 @@ def test_chimedb_test_enable_envvar(self):
os.environ["CHIMEDB_TEST_ENABLE"] = "1"

db.connect(read_write=True)
db.proxy.create_tables([TestTable])
TestTable.create(datum=datum_value)
db.proxy.create_tables([TableTest])
TableTest.create(datum=datum_value)

# Did that work?
self.assertEqual(TestTable.select(TestTable.datum).scalar(), datum_value)
db.close()

# The on-disk sqlite database should not be empty anymore
stat = os.stat(dbfile)
self.assertNotEqual(stat.st_size, 0)

def test_chimedb_test_sqlite(self):
# Create an empty on-disk sqlite database
(fd, dbfile) = tempfile.mkstemp(text=True)
os.close(fd)

os.environ["CHIMEDB_TEST_SQLITE"] = dbfile

db.test_enable()

db.connect(read_write=True)
db.proxy.create_tables([TestTable])
TestTable.create(datum=datum_value)

# Did that work?
self.assertEqual(TestTable.select(TestTable.datum).scalar(), datum_value)
self.assertEqual(TableTest.select(TableTest.datum).scalar(), datum_value)
db.close()

# The on-disk sqlite database should not be empty anymore
Expand All @@ -109,11 +88,11 @@ def test_chimedb_sqlite(self):
db.test_enable()

db.connect(read_write=True)
db.proxy.create_tables([TestTable])
TestTable.create(datum=datum_value)
db.proxy.create_tables([TableTest])
TableTest.create(datum=datum_value)

# Did that work?
self.assertEqual(TestTable.select(TestTable.datum).scalar(), datum_value)
self.assertEqual(TableTest.select(TableTest.datum).scalar(), datum_value)
db.close()

# The on-disk sqlite database should still be empty
Expand Down Expand Up @@ -145,11 +124,11 @@ def test_chimedbrc(self):
db.test_enable()

db.connect(read_write=True)
db.proxy.create_tables([TestTable])
TestTable.create(datum=datum_value)
db.proxy.create_tables([TableTest])
TableTest.create(datum=datum_value)

# Did that work?
self.assertEqual(TestTable.select(TestTable.datum).scalar(), datum_value)
self.assertEqual(TableTest.select(TableTest.datum).scalar(), datum_value)
db.close()

# The on-disk sqlite database should still be empty
Expand Down Expand Up @@ -183,11 +162,11 @@ def test_chimedb_test_rc(self):
db.test_enable()

db.connect(read_write=True)
db.proxy.create_tables([TestTable])
TestTable.create(datum=datum_value)
db.proxy.create_tables([TableTest])
TableTest.create(datum=datum_value)

# Did that work?
self.assertEqual(TestTable.select(TestTable.datum).scalar(), datum_value)
self.assertEqual(TableTest.select(TableTest.datum).scalar(), datum_value)
db.close()

# The on-disk sqlite database should not be empty
Expand All @@ -205,7 +184,3 @@ def test_no_chimedbrc(self):

with self.assertRaises(OSError):
db.connect()


if __name__ == "__main__":
unittest.main()

0 comments on commit 5030a52

Please sign in to comment.