crate 0.30.0__py2.py3-none-any.whl → 0.30.1__py2.py3-none-any.whl

Sign up to get free protection for your applications and to get access to all the features.
crate/client/__init__.py CHANGED
@@ -29,7 +29,7 @@ __all__ = [
29
29
 
30
30
  # version string read from setup.py using a regex. Take care not to break the
31
31
  # regex!
32
- __version__ = "0.30.0"
32
+ __version__ = "0.30.1"
33
33
 
34
34
  apilevel = "2.0"
35
35
  threadsafety = 2
@@ -227,11 +227,11 @@ class CrateDialect(default.DefaultDialect):
227
227
  def dbapi(cls):
228
228
  return cls.import_dbapi()
229
229
 
230
- def has_schema(self, connection, schema):
231
- return schema in self.get_schema_names(connection)
230
+ def has_schema(self, connection, schema, **kw):
231
+ return schema in self.get_schema_names(connection, **kw)
232
232
 
233
- def has_table(self, connection, table_name, schema=None):
234
- return table_name in self.get_table_names(connection, schema=schema)
233
+ def has_table(self, connection, table_name, schema=None, **kw):
234
+ return table_name in self.get_table_names(connection, schema=schema, **kw)
235
235
 
236
236
  @reflection.cache
237
237
  def get_schema_names(self, connection, **kw):
@@ -20,12 +20,14 @@
20
20
  # software solely pursuant to the terms of the relevant commercial agreement.
21
21
 
22
22
  from datetime import datetime
23
- from unittest import TestCase
23
+ from unittest import TestCase, skipIf
24
24
  from unittest.mock import MagicMock, patch
25
25
 
26
26
  import sqlalchemy as sa
27
27
 
28
28
  from crate.client.cursor import Cursor
29
+ from crate.client.sqlalchemy import SA_VERSION
30
+ from crate.client.sqlalchemy.sa_version import SA_1_4, SA_2_0
29
31
  from crate.client.sqlalchemy.types import Object
30
32
  from sqlalchemy import inspect
31
33
  from sqlalchemy.orm import Session
@@ -33,7 +35,7 @@ try:
33
35
  from sqlalchemy.orm import declarative_base
34
36
  except ImportError:
35
37
  from sqlalchemy.ext.declarative import declarative_base
36
- from sqlalchemy.testing import eq_, in_
38
+ from sqlalchemy.testing import eq_, in_, is_true
37
39
 
38
40
  FakeCursor = MagicMock(name='FakeCursor', spec=Cursor)
39
41
 
@@ -70,6 +72,13 @@ class SqlAlchemyDialectTest(TestCase):
70
72
 
71
73
  self.session = Session(bind=self.engine)
72
74
 
75
+ def init_mock(self, return_value=None):
76
+ self.fake_cursor.rowcount = 1
77
+ self.fake_cursor.description = (
78
+ ('foo', None, None, None, None, None, None),
79
+ )
80
+ self.fake_cursor.fetchall = MagicMock(return_value=return_value)
81
+
73
82
  def test_primary_keys_2_3_0(self):
74
83
  insp = inspect(self.session.bind)
75
84
  self.engine.dialect.server_version_info = (2, 3, 0)
@@ -126,3 +135,22 @@ class SqlAlchemyDialectTest(TestCase):
126
135
  ['v1', 'v2'])
127
136
  eq_(self.executed_statement, "SELECT table_name FROM information_schema.views "
128
137
  "ORDER BY table_name ASC, table_schema ASC")
138
+
139
+ @skipIf(SA_VERSION < SA_1_4, "Inspector.has_table only available on SQLAlchemy>=1.4")
140
+ def test_has_table(self):
141
+ self.init_mock(return_value=[["foo"], ["bar"]])
142
+ insp = inspect(self.session.bind)
143
+ is_true(insp.has_table("bar"))
144
+ eq_(self.executed_statement,
145
+ "SELECT table_name FROM information_schema.tables "
146
+ "WHERE table_schema = ? AND table_type = 'BASE TABLE' "
147
+ "ORDER BY table_name ASC, table_schema ASC")
148
+
149
+ @skipIf(SA_VERSION < SA_2_0, "Inspector.has_schema only available on SQLAlchemy>=2.0")
150
+ def test_has_schema(self):
151
+ self.init_mock(
152
+ return_value=[["blob"], ["doc"], ["information_schema"], ["pg_catalog"], ["sys"]])
153
+ insp = inspect(self.session.bind)
154
+ is_true(insp.has_schema("doc"))
155
+ eq_(self.executed_statement,
156
+ "select schema_name from information_schema.schemata order by schema_name asc")
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: crate
3
- Version: 0.30.0
3
+ Version: 0.30.1
4
4
  Summary: CrateDB Python Client
5
5
  Home-page: https://github.com/crate/crate-python
6
6
  Author: Crate.io
@@ -1,5 +1,5 @@
1
- crate-0.30.0-py3.9-nspkg.pth,sha256=nqN0-lx5dVfXKgm9N7WRgI0lrvtTYi2PUOtTjfAMtjY,534
2
- crate/client/__init__.py,sha256=z5D8kjYBUjvUtHy7dinOeoB9c5WsxF4N7O9sBlH1BGg,1305
1
+ crate-0.30.1-py3.9-nspkg.pth,sha256=nqN0-lx5dVfXKgm9N7WRgI0lrvtTYi2PUOtTjfAMtjY,534
2
+ crate/client/__init__.py,sha256=aMAGsfGO3MHvq3jgbmIS_lW8HceoBkyDx2-yuzPwsiQ,1305
3
3
  crate/client/_pep440.py,sha256=5KfZQ9kC9qfVK2YhRaMCuTETTbu-d3bMUOuC4RgHM38,14585
4
4
  crate/client/blob.py,sha256=plTwGEULg5s1VdKIMW6a0Zljdkng7xw0WXkXyiwNaSU,3496
5
5
  crate/client/connection.py,sha256=evWWrPFzI0lg2gPVz3Oy8PIo5AwfR-NhCSHowlpnYlw,8297
@@ -14,7 +14,7 @@ crate/client/test_util.py,sha256=xR9bdoHZplNBqIPnXSkHPNIo6bzUeKLnyqxcCmy-4Jw,163
14
14
  crate/client/tests.py,sha256=UBRgBRskvPNHfiyXF1PywVkjfZUdtFzW2Wm-nx-RrPE,12986
15
15
  crate/client/sqlalchemy/__init__.py,sha256=RKwu3filTgFGaw-X200qaQa89gRutnFaG-vlxjA6elU,1965
16
16
  crate/client/sqlalchemy/compiler.py,sha256=DL6exuoe-liZR4BqbAyYfi2PzlXnl3ccf1gfFJEh8Rc,7837
17
- crate/client/sqlalchemy/dialect.py,sha256=2BMH18LwdZBZkDyWXanUPRD_fEFn7WbYNCw5Sn6K_UM,12916
17
+ crate/client/sqlalchemy/dialect.py,sha256=Kz83VQNJNYdqxlLL4Sg4H0n7jN_Kg17-L-fSxb3SMgA,12940
18
18
  crate/client/sqlalchemy/sa_version.py,sha256=exLPKCalcinLZ9geiqPX_pFWOoxnDkkxTy5AOabf9zw,1181
19
19
  crate/client/sqlalchemy/types.py,sha256=8aXPln79WQ5QNqDJZL2TSvG31XO0pWo9EqF2XOzzgYU,8257
20
20
  crate/client/sqlalchemy/compat/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -30,7 +30,7 @@ crate/client/sqlalchemy/tests/compiler_test.py,sha256=M62a0h23jDjfO5Ohkw4pv_8eah
30
30
  crate/client/sqlalchemy/tests/connection_test.py,sha256=LW2hIlEbhQWopZZ-Zp1nejRxEfMmaGwFbxwfQFQ8sBk,4596
31
31
  crate/client/sqlalchemy/tests/create_table_test.py,sha256=nvVphw-shsf8JMUopQk66-jJN89AVxYSIiAPV43KmtI,9176
32
32
  crate/client/sqlalchemy/tests/datetime_test.py,sha256=E84Xd-g7kIshKdGQ6J2RMvuao-Od0iCpz11JLfyA5s8,3170
33
- crate/client/sqlalchemy/tests/dialect_test.py,sha256=lWIwI7imR_55zoJ2CkaOspjvkH6mKTPR8dv2i8xOfRg,4948
33
+ crate/client/sqlalchemy/tests/dialect_test.py,sha256=ugTljMQZ5Qkloxop3G5ptkCuBLSR_2h_2UZaiX8Dl2c,6275
34
34
  crate/client/sqlalchemy/tests/dict_test.py,sha256=SJPBUs3-MPZ3XxYPF1KGz7bxbWKCArZz0dvtqhysuWk,16600
35
35
  crate/client/sqlalchemy/tests/function_test.py,sha256=XQrPW8WKPI_aLgZo9kpfO2Wjx6dWp3ureqtgkghl2xk,1824
36
36
  crate/client/sqlalchemy/tests/insert_from_select_test.py,sha256=UeSk-34qh_mrZNr4q1uriFI9UxPieFPJ2eKjNhHkEPc,3256
@@ -43,11 +43,11 @@ crate/testing/settings.py,sha256=YTqod79NO4Lv_agPgMLGlB_fMe6baAhLXFKBZnuytBk,165
43
43
  crate/testing/test_layer.py,sha256=9x3FiyJcsB9oSY5vVzMaL_DvwJt91a_hquXS7gbDYdQ,11525
44
44
  crate/testing/tests.py,sha256=seACn7a4HbQIGxJmKXiUDkuE9ossO7UsSMTwMYimOA0,1287
45
45
  crate/testing/util.py,sha256=qtc72rKfvfTA9VMKjE2JSukffobd7ffCcddoTiAdO6A,690
46
- crate-0.30.0.dist-info/LICENSE,sha256=1QGh4tR_JmDKn33ztoDv2UkER0Q4Zh1kC5J3vMWwRso,12854
47
- crate-0.30.0.dist-info/METADATA,sha256=G8rjC6PEYA5FXnQTkenQ6fjhI9cDlaASImiBy_hRjL8,4526
48
- crate-0.30.0.dist-info/NOTICE,sha256=vwbBS8sykCOndA1kjuu8dUInljH27kk3lcPBzQ2SMns,1159
49
- crate-0.30.0.dist-info/WHEEL,sha256=bb2Ot9scclHKMOLDEHY6B2sicWOgugjFKaJsT7vwMQo,110
50
- crate-0.30.0.dist-info/entry_points.txt,sha256=DN4zBP45-6hmDwuOAR9LFoxzrg-A9MqPh1Hn6UXEFPQ,68
51
- crate-0.30.0.dist-info/namespace_packages.txt,sha256=2wP2HlpxdhgTLMl9ipi168xkm6FMq9_2bf0xGGxF_OI,6
52
- crate-0.30.0.dist-info/top_level.txt,sha256=2wP2HlpxdhgTLMl9ipi168xkm6FMq9_2bf0xGGxF_OI,6
53
- crate-0.30.0.dist-info/RECORD,,
46
+ crate-0.30.1.dist-info/LICENSE,sha256=1QGh4tR_JmDKn33ztoDv2UkER0Q4Zh1kC5J3vMWwRso,12854
47
+ crate-0.30.1.dist-info/METADATA,sha256=_BAElXFOJzZY9u7hMcU-PEHoUCxuocEDwTjYAYw2XIU,4526
48
+ crate-0.30.1.dist-info/NOTICE,sha256=vwbBS8sykCOndA1kjuu8dUInljH27kk3lcPBzQ2SMns,1159
49
+ crate-0.30.1.dist-info/WHEEL,sha256=bb2Ot9scclHKMOLDEHY6B2sicWOgugjFKaJsT7vwMQo,110
50
+ crate-0.30.1.dist-info/entry_points.txt,sha256=DN4zBP45-6hmDwuOAR9LFoxzrg-A9MqPh1Hn6UXEFPQ,68
51
+ crate-0.30.1.dist-info/namespace_packages.txt,sha256=2wP2HlpxdhgTLMl9ipi168xkm6FMq9_2bf0xGGxF_OI,6
52
+ crate-0.30.1.dist-info/top_level.txt,sha256=2wP2HlpxdhgTLMl9ipi168xkm6FMq9_2bf0xGGxF_OI,6
53
+ crate-0.30.1.dist-info/RECORD,,
File without changes