Skip to content

Commit f6cef2b

Browse files
committed
Merge branch 'main' into DE-749
2 parents 8b1d10a + b389b80 commit f6cef2b

File tree

6 files changed

+25
-13
lines changed

6 files changed

+25
-13
lines changed

arango/client.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
JwtSuperuserConnection,
1313
)
1414
from arango.database import StandardDatabase
15-
from arango.exceptions import ServerConnectionError
15+
from arango.exceptions import ArangoClientError, ServerConnectionError
1616
from arango.http import (
1717
DEFAULT_REQUEST_TIMEOUT,
1818
DefaultHTTPClient,
@@ -300,6 +300,6 @@ def db(
300300
except ServerConnectionError as err:
301301
raise err
302302
except Exception as err:
303-
raise ServerConnectionError(f"bad connection: {err}")
303+
raise ArangoClientError(f"bad connection: {err}")
304304

305305
return StandardDatabase(connection)

arango/connection.py

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -226,9 +226,13 @@ def ping(self) -> int:
226226
request = Request(method="get", endpoint="/_api/collection")
227227
resp = self.send_request(request)
228228
if resp.status_code in {401, 403}:
229-
raise ServerConnectionError("bad username/password or token is expired")
229+
raise ServerConnectionError(
230+
resp, request, "bad username/password or token is expired"
231+
)
230232
if not resp.is_success: # pragma: no cover
231-
raise ServerConnectionError(resp.error_message or "bad server response")
233+
raise ServerConnectionError(
234+
resp, request, resp.error_message or "bad server response"
235+
)
232236
return resp.status_code
233237

234238
@abstractmethod

arango/database.py

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1442,10 +1442,11 @@ def create_collection(
14421442
:raise arango.exceptions.CollectionCreateError: If create fails.
14431443
"""
14441444
key_options: Json = {"type": key_generator, "allowUserKeys": user_keys}
1445-
if key_increment is not None:
1446-
key_options["increment"] = key_increment
1447-
if key_offset is not None:
1448-
key_options["offset"] = key_offset
1445+
if key_generator == "autoincrement":
1446+
if key_increment is not None:
1447+
key_options["increment"] = key_increment
1448+
if key_offset is not None:
1449+
key_options["offset"] = key_offset
14491450

14501451
data: Json = {
14511452
"name": name,

arango/exceptions.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -614,7 +614,7 @@ class PregelJobDeleteError(ArangoServerError):
614614
#####################
615615

616616

617-
class ServerConnectionError(ArangoClientError):
617+
class ServerConnectionError(ArangoServerError):
618618
"""Failed to connect to ArangoDB server."""
619619

620620

tests/test_client.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88

99
from arango.client import ArangoClient
1010
from arango.database import StandardDatabase
11-
from arango.exceptions import ServerConnectionError
11+
from arango.exceptions import ArangoClientError, ServerConnectionError
1212
from arango.http import DefaultHTTPClient, DeflateRequestCompression
1313
from arango.resolver import FallbackHostResolver, RandomHostResolver, SingleHostResolver
1414
from tests.helpers import (
@@ -89,7 +89,7 @@ def test_client_bad_connection(db, username, password, cluster):
8989

9090
# Test connection with invalid host URL
9191
client = ArangoClient(hosts="http://127.0.0.1:8500")
92-
with pytest.raises(ServerConnectionError) as err:
92+
with pytest.raises(ArangoClientError) as err:
9393
client.db(db.name, username, password, verify=True)
9494
assert "bad connection" in str(err.value)
9595

tests/test_collection.py

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -190,14 +190,21 @@ def test_collection_management(db, bad_db, cluster):
190190
}
191191
]
192192

193+
col = db.create_collection(
194+
name=col_name, key_generator="autoincrement", key_increment=9, key_offset=100
195+
)
196+
key_options = col.properties()["key_options"]
197+
assert key_options["key_generator"] == "autoincrement"
198+
assert key_options["key_increment"] == 9
199+
assert key_options["key_offset"] == 100
200+
db.delete_collection(col_name)
201+
193202
col = db.create_collection(
194203
name=col_name,
195204
sync=True,
196205
system=False,
197206
key_generator="traditional",
198207
user_keys=False,
199-
key_increment=9,
200-
key_offset=100,
201208
edge=True,
202209
shard_count=2,
203210
shard_fields=["test_attr:"],

0 commit comments

Comments
 (0)