sqlrules-mssql 1.0.0__tar.gz → 1.0.1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {sqlrules_mssql-1.0.0 → sqlrules_mssql-1.0.1}/.gitignore +1 -0
- {sqlrules_mssql-1.0.0 → sqlrules_mssql-1.0.1}/PKG-INFO +1 -1
- {sqlrules_mssql-1.0.0 → sqlrules_mssql-1.0.1}/pyproject.toml +1 -1
- {sqlrules_mssql-1.0.0 → sqlrules_mssql-1.0.1}/src/sqlrules_mssql/__init__.py +1 -1
- {sqlrules_mssql-1.0.0 → sqlrules_mssql-1.0.1}/tests/test_mssql_plugin.py +21 -11
- {sqlrules_mssql-1.0.0 → sqlrules_mssql-1.0.1}/LICENSE +0 -0
- {sqlrules_mssql-1.0.0 → sqlrules_mssql-1.0.1}/README.md +0 -0
- {sqlrules_mssql-1.0.0 → sqlrules_mssql-1.0.1}/src/sqlrules_mssql/json.py +0 -0
- {sqlrules_mssql-1.0.0 → sqlrules_mssql-1.0.1}/src/sqlrules_mssql/length.py +0 -0
- {sqlrules_mssql-1.0.0 → sqlrules_mssql-1.0.1}/src/sqlrules_mssql/py.typed +0 -0
- {sqlrules_mssql-1.0.0 → sqlrules_mssql-1.0.1}/src/sqlrules_mssql/type_check.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: sqlrules-mssql
|
|
3
|
-
Version: 1.0.
|
|
3
|
+
Version: 1.0.1
|
|
4
4
|
Summary: SQL Server dialect plugin for SQLRules (JSON and LEN string ops).
|
|
5
5
|
Project-URL: Homepage, https://github.com/eddiethedean/sqlrules
|
|
6
6
|
Project-URL: Repository, https://github.com/eddiethedean/sqlrules
|
|
@@ -6,7 +6,7 @@ from sqlrules_mssql.json import translate_json_contains, translate_json_has_key
|
|
|
6
6
|
from sqlrules_mssql.length import translate_max_length, translate_min_length
|
|
7
7
|
from sqlrules_mssql.type_check import translate_type_check
|
|
8
8
|
|
|
9
|
-
__version__ = "1.0.
|
|
9
|
+
__version__ = "1.0.1"
|
|
10
10
|
|
|
11
11
|
|
|
12
12
|
class MssqlPlugin:
|
|
@@ -9,17 +9,23 @@ from sqlalchemy.dialects import mssql
|
|
|
9
9
|
from sqlrules_mssql import MssqlPlugin, __version__
|
|
10
10
|
|
|
11
11
|
from sqlrules import Compiler, JsonContains, JsonHasKey, UnsupportedConstraintError
|
|
12
|
-
from sqlrules.conformance import
|
|
12
|
+
from sqlrules.conformance import run_basic_conformance
|
|
13
13
|
|
|
14
14
|
|
|
15
15
|
def test_version() -> None:
|
|
16
|
-
assert __version__ == "1.0.
|
|
16
|
+
assert __version__ == "1.0.1"
|
|
17
17
|
|
|
18
18
|
|
|
19
|
-
def
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
19
|
+
def test_conformance() -> None:
|
|
20
|
+
# MSSQL does not register pattern; exercise length override instead.
|
|
21
|
+
class LengthFilter(BaseModel):
|
|
22
|
+
name: Annotated[str, Field(min_length=2)]
|
|
23
|
+
|
|
24
|
+
run_basic_conformance(
|
|
25
|
+
MssqlPlugin(),
|
|
26
|
+
operator="min_length",
|
|
27
|
+
model=LengthFilter,
|
|
28
|
+
)
|
|
23
29
|
|
|
24
30
|
|
|
25
31
|
def test_length_uses_trailing_space_aware_len() -> None:
|
|
@@ -33,11 +39,15 @@ def test_length_uses_trailing_space_aware_len() -> None:
|
|
|
33
39
|
cache=False,
|
|
34
40
|
).compile(Filter, table)
|
|
35
41
|
dialect = mssql.dialect()
|
|
36
|
-
min_sql = str(
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
42
|
+
min_sql = str(
|
|
43
|
+
rules["name"][0].compile(dialect=dialect, compile_kwargs={"literal_binds": True})
|
|
44
|
+
).lower()
|
|
45
|
+
max_sql = str(
|
|
46
|
+
rules["name"][1].compile(dialect=dialect, compile_kwargs={"literal_binds": True})
|
|
47
|
+
).lower()
|
|
48
|
+
# Trailing-space-aware: LEN(name + '.') - 1, not portable length()/plain LEN(name).
|
|
49
|
+
assert min_sql == "len(items.name + '.') - 1 >= 2"
|
|
50
|
+
assert max_sql == "len(items.name + '.') - 1 <= 10"
|
|
41
51
|
assert "length(" not in min_sql
|
|
42
52
|
assert "length(" not in max_sql
|
|
43
53
|
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|