You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
#### Reference Issues/PRs
<!--Example: Fixes#1234. See also #3456.-->
#### What does this implement or fix?
Storage test execution against Azure blob storage for tests along with
github workflow changes to support that in github with persistance test
executions
Environment variables needed to execute azure storage tests locally:
```
export ARCTICDB_REAL_AZURE_CONTAINER=....
export ARCTICDB_REAL_AZURE_CONNECTION_STRING=....
export ARCTICDB_STORAGE_AZURE=1
```
**Additionally**:
1. there is support for ASV real storage test on Azure + log
sanitization for AccountKey
NOTE: The ASV tests cannot work under this PR due to the change
introducing common logging.py for all tests. This is run from a build
with merged PR (in my fork)
https://github.com/grusev/ArcticDB/actions/runs/16874994643/job/47797467959
2. Installation tests now can run with Azure also
**Other framework enhancements**:
1. Logging is now centralized in arcticdb\util\logger.py is the central
logging utility. It contains sanitization code for secrets. Previously 2
loggers existed for ASV and functional tests. Now they are combined into
one. Note that logger.py also exists in installation_tests. This is
required due to the fact that this package although locally inside
python folder is a package of its own and cannot use any of standard
libs from arcticdb in order to not depend on any version, it is created
to support ALL released versions.
2. As you will see in the logs below currently there is a MacOS related
problem that affect significant number of tests. In order not to clutter
code with many xfail statements there is a central code at conftest.py
(again replicated twice for installation_tests also) that will XFAIL
automatically all MacOs tests that experience that error.
Imprtant note: this mechanism can be enhanced further to get rid
potentially of all xfail statements and centralize xfailing in one file.
That needs to be discussed first before accepted as it has both benefits
and drawbacks. The case where we have massive failures like this one
where benefits are much more than the drawbacks and therefore it perhaps
should be the default option to go for in future.
**Workflow enhancements**:
- 'Build with conda' - ability to debug, ability to enable debug
logging, custom commands execution. Azure tests can now work by passing
ARCTICDB params for the test, a kind of backdoor)
- "Installation tests" - same (Azure tests now can work fluently by
selecting them)
Both enhancement make possible to run Azure tests with those workflows
makes possible logging debug information when needed and connect to git
executor on demand. With those enhancements we now get enhanced ability
to run and debug issues on Linux, Windows, MacOS using either builds
from the top of branch as well as arcticdb install packages from conda
and pypi
**Build and Test**:
https://github.com/man-group/ArcticDB/actions/runs/16614944930/job/47006507855
Windows is ok. Linux is having problems perhaps due to different image
Working tests on Linux and Windows:
https://github.com/man-group/ArcticDB/actions/runs/16621045959/job/47026145204
(reduced to Python 3.12 tests only)
Full run :
https://github.com/man-group/ArcticDB/actions/runs/16623323259/job/47033988304
One test failed due to error that needs to be investigated more closely,
but the error is exatly same as the one with MacOS
**Installation Tests**:
https://github.com/man-group/ArcticDB/actions/runs/16588682801/job/46919014211
The tests work on Azure with Linux. There is problem with MacOs. Some
tests fail due to bug most probably (to be logged)
**Build with Conda** tets (running Azure tests):
https://github.com/man-group/ArcticDB/actions/runs/16595281766/job/46940289302
The linux tests pass, while MacOS are full with errors of same type as
previous:
```
___ ERROR at setup of test_batch_methods_with_negative_as_of[real_azure-0] ____
[gw2] darwin -- Python 3.13.5 /Users/runner/micromamba/envs/arcticdb/bin/python
arctic_client = Arctic(config=azure(endpoint=DefaultEndpointsProtocol=https;AccountName=arcticdbgithub;AccountKey=...;EndpointSuffix=core.windows.net, container=githubblob))
lib_name = 'test_batch_methods_with_negati.19784_8719781760_2025-07-29T12_11_50__56d7de65-510c-4134-9e1f-3eaf2ff19759'
@pytest.fixture
def arctic_library(arctic_client, lib_name) -> Generator[Library, None, None]:
> yield arctic_client.create_library(lib_name)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
tests/conftest.py:628:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
arcticdb/arctic.py:205: in create_library
if self.has_library(name):
^^^^^^^^^^^^^^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = Arctic(config=azure(endpoint=DefaultEndpointsProtocol=https;AccountName=arcticdbgithub;AccountKey=...;EndpointSuffix=core.windows.net, container=githubblob))
name = 'test_batch_methods_with_negati.19784_8719781760_2025-07-29T12_11_50__56d7de65-510c-4134-9e1f-3eaf2ff19759'
def has_library(self, name: str) -> bool:
"""
Query if the given library exists
Parameters
----------
name: str
Name of the library to check the existence of.
Returns
-------
True if the library exists, False otherwise.
"""
> return self._library_manager.has_library(self._library_adapter.get_name_for_library_manager(name))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
E arcticdb_ext.exceptions.InternalException: Azure::Storage::StorageException(404 The specified blob does not exist.
E
E Request ID: 5d961a76-e01e-005f-5e81-005af8000000)
arcticdb/arctic.py:254: InternalException
```
#### Any other comments?
#### Checklist
<details>
<summary>
Checklist for code changes...
</summary>
- [ ] Have you updated the relevant docstrings, documentation and
copyright notice?
- [ ] Is this contribution tested against [all ArcticDB's
features](../docs/mkdocs/docs/technical/contributing.md)?
- [ ] Do all exceptions introduced raise appropriate [error
messages](https://docs.arcticdb.io/error_messages/)?
- [ ] Are API changes highlighted in the PR description?
- [ ] Is the PR labelled as enhancement or bug so it appears in
autogenerated release notes?
</details>
<!--
Thanks for contributing a Pull Request to ArcticDB! Please ensure you
have taken a look at:
- ArcticDB's Code of Conduct:
https://github.com/man-group/ArcticDB/blob/master/CODE_OF_CONDUCT.md
- ArcticDB's Contribution Licensing:
https://github.com/man-group/ArcticDB/blob/master/docs/mkdocs/docs/technical/contributing.md#contribution-licensing
-->
---------
Co-authored-by: Georgi Rusev <Georgi Rusev>
Copy file name to clipboardExpand all lines: .github/workflows/build.yml
+42-10Lines changed: 42 additions & 10 deletions
Original file line number
Diff line number
Diff line change
@@ -19,6 +19,7 @@ on:
19
19
- 'no'
20
20
- 'AWS_S3'
21
21
- 'GCPXML'
22
+
- 'AZURE'
22
23
default: 'no'
23
24
24
25
pypi_publish:
@@ -34,20 +35,25 @@ on:
34
35
description: Tag of the ArcticDB development image to use for the Linux C++ tests build
35
36
type: string
36
37
default: arcticdb-dev-clang:latest
37
-
pytest_args:
38
-
description: Rewrite what tests will run or do your own pytest line if string starts with pytest ... (Example -- pytest -n auto -v --count=50 -x python/tests/compat)
39
-
type: string
40
-
default: ""
41
-
version_cache_full_test:
42
-
description: 'Run tests with both version cache 0 and 2000000000'
38
+
macos_enabled:
39
+
description: Enable macOS tests
43
40
required: false
44
41
default: false
45
42
type: boolean
46
-
macos_enabled:
47
-
description: Enable macOS tests
43
+
version_cache_full_test:
44
+
description: 'Run tests with both version cache 0 and 2000000000'
48
45
required: false
49
46
default: false
50
47
type: boolean
48
+
flags:
49
+
type: string
50
+
description: 'Enable debug logging or debug by setting respective value to 1'
51
+
required: true
52
+
default: "DEBUG_LOGGING=0;DEBUG=0"
53
+
pytest_args:
54
+
description: Rewrite what tests will run or do your own pytest line if string starts with pytest ... (Example -- pytest -n auto -v --count=50 -x python/tests/compat)
Copy file name to clipboardExpand all lines: .github/workflows/build_steps.yml
+14Lines changed: 14 additions & 0 deletions
Original file line number
Diff line number
Diff line change
@@ -14,6 +14,8 @@ on:
14
14
pytest_args: {default: "", type: string, description: a way to rewrite the pytest args to change what tests are being run}
15
15
version_cache_full_test: {default: false, type: boolean, description: if true - tests will run with both version cache 0 and 2000000000 otherwise only 2000000000}
16
16
run_full_matrix_of_persistent_tests: {default: false, type: boolean, description: if true - persistent tests will run for all python versions else only for 12 }
0 commit comments