Skip to content

Commit 276ba06

Browse files
committed
refactor: Remove legacy Query object from test cases and docs
code changes by cline, manually reviewed.
1 parent 546f408 commit 276ba06

22 files changed

+68
-57
lines changed

docs/queries.md

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -4,24 +4,26 @@ You can query history models just like any other sqlalchemy declarative model.
44

55
```python
66
>>> from sqlalchemy_history import version_class
7+
>>> import sqlalchemy as sa
78
>>> ArticleVersion = version_class(Article)
8-
>>> session.query(ArticleVersion).filter_by(name=u'some name').all()
9+
>>> session.scalars(sa.select(ArticleVersion).filter_by(name=u'some name')).all()
910
```
1011

1112
## How many transactions have been executed?
1213

1314
```python
1415
>>> from sqlalchemy_history import transaction_class
16+
>>> import sqlalchemy as sa
1517
>>> Transaction = transaction_class(Article)
16-
>>> Transaction.query.count()
18+
>>> session.scalar(sa.select(sa.func.count()).select_from(Transaction))
1719
```
1820

1921
## Querying for entities of a class at a given revision
2022

2123
In the following example we find all articles which were affected by transaction 33.
2224

2325
```python
24-
>>> session.query(ArticleVersion).filter_by(transaction_id=33)
26+
>>> session.scalars(sa.select(ArticleVersion).filter_by(transaction_id=33)).all()
2527
```
2628

2729
## Querying for transactions, at which entities of a given class changed
@@ -30,13 +32,14 @@ In this example we find all transactions which affected any instance of 'Article
3032

3133
```python
3234
>>> TransactionChanges = Article.__versioned__['transaction_changes']
33-
>>> entries = (
34-
... session.query(Transaction)
35-
... .innerjoin(Transaction.changes)
36-
... .filter(
35+
>>> statement = (
36+
... sa.select(Transaction)
37+
... .join(Transaction.changes)
38+
... .where(
3739
... TransactionChanges.entity_name.in_(['Article'])
3840
... )
3941
... )
42+
... entries = session.scalars(statement).all()
4043
```
4144

4245
## Querying for versions of entity that modified given property
@@ -46,5 +49,5 @@ PropertyModTrackerPlugin.
4649

4750
```python
4851
>>> ArticleVersion = version_class(Article)
49-
>>> session.query(ArticleHistory).filter(ArticleVersion.name_mod).all()
52+
>>> session.scalars(sa.select(ArticleHistory).filter(ArticleVersion.name_mod)).all()
5053
```

docs/revert.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ One of the major benefits of SQLAlchemy-History is its ability to revert changes
2828
>>> session.commit()
2929
>>> version.revert()
3030
>>> session.commit() # article lives again!
31-
>>> session.query(Article).first()
31+
>>> session.scalars(sa.select(Article).limit(1)).first()
3232
```
3333

3434
## Revert relationships
@@ -64,15 +64,15 @@ Now lets say some user first adds an article with couple of tags:
6464
Then lets say another user deletes one of the tags:
6565

6666
```python
67-
>>> tag = session.query(Tag).filter_by(name=u'Interesting')
67+
>>> tag = session.scalar(sa.select(Tag).where(Tag.name == "Interesting"))
6868
>>> session.delete(tag)
6969
>>> session.commit()
7070
```
7171

7272
Now the first user wants to set the article back to its original state. It can be achieved as follows (notice how we use the relations parameter):
7373

7474
```python
75-
>>> article = session.query(Article).get(1)
75+
>>> article = session.get(Article, 1)
7676
>>> article.versions[0].revert(relations=['tags'])
7777
>>> session.commit()
7878
```

docs/transactions.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ Transaction can be queried just like any other sqlalchemy declarative model.
99
```python
1010
>>> from sqlalchemy_history import transaction_class
1111
>>> Transaction = transaction_class(Article)
12-
>>> session.query(Transaction).all() # find all transactions
12+
>>> session.scalars(sa.select(Transaction)).all() # find all transactions
1313
```
1414

1515
## UnitOfWork

tests/builders/test_table_builder.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ def test_assigns_foreign_keys_for_versions(self):
1616
self.session.add(article)
1717
self.session.commit()
1818
cls = version_class(self.Tag)
19-
version = self.session.query(cls).first()
19+
version = self.session.scalars(sa.select(cls)).first()
2020
assert version.name == "some tag"
2121
assert version.id == 1
2222
assert version.article_id == 1

tests/inheritance/test_concrete_inheritance.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -80,8 +80,8 @@ def test_transaction_changed_entities(self):
8080
self.session.add(article)
8181
self.session.commit()
8282
Transaction = versioning_manager.transaction_cls
83-
transaction = (
84-
self.session.query(Transaction).order_by(sa.sql.expression.desc(Transaction.issued_at))
83+
transaction = self.session.scalars(
84+
sa.select(Transaction).order_by(sa.sql.expression.desc(Transaction.issued_at))
8585
).first()
8686
assert transaction.entity_names == ["Article"]
8787
assert transaction.changed_entities

tests/inheritance/test_join_table_inheritance.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,7 @@ def test_with_polymorphic(self):
7575
self.session.add(article)
7676
self.session.commit()
7777

78-
version_obj = self.session.query(self.TextItemVersion).first()
78+
version_obj = self.session.scalars(sa.select(self.TextItemVersion)).first()
7979
assert isinstance(version_obj, self.ArticleVersion)
8080

8181
def test_consecutive_insert_and_delete(self):

tests/inheritance/test_single_table_inheritance.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -78,8 +78,8 @@ def test_transaction_changed_entities(self):
7878
self.session.add(article)
7979
self.session.commit()
8080
Transaction = versioning_manager.transaction_cls
81-
transaction = (
82-
self.session.query(Transaction).order_by(sa.sql.expression.desc(Transaction.issued_at))
81+
transaction = self.session.scalars(
82+
sa.select(Transaction).order_by(sa.sql.expression.desc(Transaction.issued_at))
8383
).first()
8484
assert transaction.entity_names == ["Article"]
8585
assert transaction.changed_entities

tests/plugins/test_activity.py

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ def test_create_activity_with_pk(self):
6262
self.session.commit()
6363
self.create_activity(not_id_model)
6464
self.session.commit()
65-
activity = self.session.query(versioning_manager.activity_cls).first()
65+
activity = self.session.scalars(sa.select(versioning_manager.activity_cls)).first()
6666
assert activity
6767
assert activity.transaction_id
6868
assert activity.object == not_id_model
@@ -82,7 +82,7 @@ def test_create_activity(self):
8282
self.session.flush()
8383
self.create_activity(article)
8484
self.session.commit()
85-
activity = self.session.query(versioning_manager.activity_cls).first()
85+
activity = self.session.scalars(sa.select(versioning_manager.activity_cls)).first()
8686
assert activity
8787
assert activity.transaction_id
8888
assert activity.object == article
@@ -99,11 +99,9 @@ def test_delete_activity(self):
9999
)
100100
self.session.add(activity)
101101
self.session.commit()
102-
versions = (
103-
self.session.query(self.ArticleVersion)
104-
.order_by(sa.desc(self.ArticleVersion.transaction_id))
105-
.all()
106-
)
102+
versions = self.session.scalars(
103+
sa.select(self.ArticleVersion).order_by(sa.desc(self.ArticleVersion.transaction_id))
104+
).all()
107105
assert activity
108106
assert activity.transaction_id
109107
assert activity.object is None
@@ -126,8 +124,8 @@ def test_activity_queries(self):
126124
)
127125
self.session.add(activity)
128126
self.session.commit()
129-
activities = self.session.query(Activity).filter(
130-
sa.or_(Activity.object == article, Activity.target == article)
127+
activities = self.session.scalars(
128+
sa.select(Activity).filter(sa.or_(Activity.object == article, Activity.target == article))
131129
)
132130
assert activities.count() == 2
133131

@@ -198,7 +196,9 @@ def test_activity_target(self):
198196
)
199197
self.session.add(activity)
200198
self.session.commit()
201-
activity = self.session.query(versioning_manager.activity_cls).filter_by(id=activity.id).one()
199+
activity = self.session.scalars(
200+
sa.select(versioning_manager.activity_cls).filter_by(id=activity.id)
201+
).one()
202202
assert activity
203203
assert activity.transaction_id
204204
assert activity.object == tag

tests/plugins/test_null_delete.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import sqlalchemy as sa
12
from sqlalchemy_history.plugins import NullDeletePlugin
23
from tests import TestCase
34

@@ -15,7 +16,7 @@ def _delete(self):
1516

1617
def test_stores_operation_type(self):
1718
self._delete()
18-
versions = self.session.query(self.ArticleVersion).all()
19+
versions = self.session.scalars(sa.select(self.ArticleVersion)).all()
1920
assert versions[1].operation_type == 2
2021

2122

@@ -24,7 +25,7 @@ class TestDeleteWithoutStoreDataAtDelete(DeleteTestCase):
2425

2526
def test_creates_versions_on_delete(self):
2627
self._delete()
27-
versions = self.session.query(self.ArticleVersion).all()
28+
versions = self.session.scalars(sa.select(self.ArticleVersion)).all()
2829
assert len(versions) == 2
2930
assert versions[1].name is None
3031
assert versions[1].content is None

tests/plugins/test_property_mod_tracker.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,9 @@ def test_mod_properties_with_delete(self):
5555
self.session.delete(user)
5656
self.session.commit()
5757
UserVersion = version_class(self.User)
58-
version = (self.session.query(UserVersion).order_by(sa.desc(UserVersion.transaction_id))).first()
58+
version = self.session.scalars(
59+
sa.select(UserVersion).order_by(sa.desc(UserVersion.transaction_id))
60+
).first()
5961
assert version.age_mod
6062
assert version.name_mod
6163

0 commit comments

Comments
 (0)