Page Menu
Home
Software Heritage
Search
Configure Global Search
Log In
Files
F9339080
conftest.py
No One
Temporary
Actions
Download File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Flag For Later
Size
2 KB
Subscribers
None
conftest.py
View Options
# Copyright (C) 2019-2020 The Software Heritage developers
# See the AUTHORS file at the top-level directory of this distribution
# License: GNU General Public License version 3, or any later version
# See top-level LICENSE file for more information
from
datetime
import
timedelta
import
os
from
unittest.mock
import
patch
import
pytest
import
yaml
from
swh.indexer.storage
import
get_indexer_storage
from
swh.objstorage.factory
import
get_objstorage
from
swh.storage
import
get_storage
from
.utils
import
fill_obj_storage
,
fill_storage
TASK_NAMES
=
[
"revision_intrinsic_metadata"
,
"origin_intrinsic_metadata"
]
@pytest.fixture
def
indexer_scheduler
(
swh_scheduler
):
for
taskname
in
TASK_NAMES
:
swh_scheduler
.
create_task_type
(
{
"type"
:
taskname
,
"description"
:
"The {} indexer testing task"
.
format
(
taskname
),
"backend_name"
:
"swh.indexer.tests.tasks.{}"
.
format
(
taskname
),
"default_interval"
:
timedelta
(
days
=
1
),
"min_interval"
:
timedelta
(
hours
=
6
),
"max_interval"
:
timedelta
(
days
=
12
),
"num_retries"
:
3
,
}
)
return
swh_scheduler
@pytest.fixture
def
idx_storage
():
"""An instance of in-memory indexer storage that gets injected into all
indexers classes.
"""
idx_storage
=
get_indexer_storage
(
"memory"
,
{})
with
patch
(
"swh.indexer.storage.in_memory.IndexerStorage"
)
as
idx_storage_mock
:
idx_storage_mock
.
return_value
=
idx_storage
yield
idx_storage
@pytest.fixture
def
storage
():
"""An instance of in-memory storage that gets injected into all indexers
classes.
"""
storage
=
get_storage
(
cls
=
"memory"
)
fill_storage
(
storage
)
with
patch
(
"swh.storage.in_memory.InMemoryStorage"
)
as
storage_mock
:
storage_mock
.
return_value
=
storage
yield
storage
@pytest.fixture
def
obj_storage
():
"""An instance of in-memory objstorage that gets injected into all indexers
classes.
"""
objstorage
=
get_objstorage
(
"memory"
,
{})
fill_obj_storage
(
objstorage
)
with
patch
.
dict
(
"swh.objstorage.factory._STORAGE_CLASSES"
,
{
"memory"
:
lambda
:
objstorage
}
):
yield
objstorage
@pytest.fixture
def
swh_indexer_config
():
return
{
"storage"
:
{
"cls"
:
"memory"
},
"objstorage"
:
{
"cls"
:
"memory"
,
"args"
:
{},},
"indexer_storage"
:
{
"cls"
:
"memory"
,
"args"
:
{},},
"tools"
:
{
"name"
:
"file"
,
"version"
:
"1:5.30-1+deb9u1"
,
"configuration"
:
{
"type"
:
"library"
,
"debian-package"
:
"python3-magic"
},
},
"compute_checksums"
:
[
"blake2b512"
],
# for rehash indexer
}
@pytest.fixture
def
swh_config
(
swh_indexer_config
,
monkeypatch
,
tmp_path
):
conffile
=
os
.
path
.
join
(
str
(
tmp_path
),
"indexer.yml"
)
with
open
(
conffile
,
"w"
)
as
f
:
f
.
write
(
yaml
.
dump
(
swh_indexer_config
))
monkeypatch
.
setenv
(
"SWH_CONFIG_FILENAME"
,
conffile
)
return
conffile
File Metadata
Details
Attached
Mime Type
text/x-python
Expires
Jul 4 2025, 9:24 AM (6 w, 20 h ago)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
3338002
Attached To
rDCIDX Metadata indexer
Event Timeline
Log In to Comment