mirror of
https://github.com/galaxyproject/galaxy.git
synced 2026-09-24 16:30:27 +08:00
Fix API unit tests with ID encodings
This commit is contained in:
@@ -0,0 +1,10 @@
|
||||
import pytest
|
||||
|
||||
from galaxy.schema.fields import BaseDatabaseIdField
|
||||
from galaxy.security.idencoding import IdEncodingHelper
|
||||
|
||||
|
||||
@pytest.fixture(scope="session", autouse=True)
|
||||
def security() -> IdEncodingHelper:
|
||||
BaseDatabaseIdField.security = IdEncodingHelper(id_secret="testing")
|
||||
return BaseDatabaseIdField.security
|
||||
@@ -10,7 +10,7 @@ from galaxy.schema.fetch_data import (
|
||||
UrlDataElement,
|
||||
)
|
||||
|
||||
HISTORY_ID = "abcdef0123456789"
|
||||
HISTORY_ID = "378807ae895b74ff"
|
||||
example_payload = {
|
||||
"targets": [
|
||||
{
|
||||
@@ -69,7 +69,7 @@ ftp_hdca_target = {
|
||||
}
|
||||
|
||||
recursive_archive_payload = {
|
||||
"history_id": "f3f73e481f432006",
|
||||
"history_id": "70583a56914a26f9",
|
||||
"targets": [
|
||||
{
|
||||
"destination": {"type": "library", "name": "My Cool Library"},
|
||||
@@ -82,7 +82,7 @@ recursive_archive_payload = {
|
||||
|
||||
|
||||
nested_element_regression_payload = {
|
||||
"history_id": "80a1fcbe9fcb3c61",
|
||||
"history_id": "c369577e3c21d7b7",
|
||||
"targets": [
|
||||
{
|
||||
"destination": {"type": "hdca"},
|
||||
|
||||
@@ -5,12 +5,10 @@ from pydantic import (
|
||||
)
|
||||
|
||||
from galaxy.schema.fields import (
|
||||
BaseDatabaseIdField,
|
||||
DecodedDatabaseIdField,
|
||||
EncodedDatabaseIdField,
|
||||
LibraryFolderDatabaseIdField,
|
||||
)
|
||||
from galaxy.security.idencoding import IdEncodingHelper
|
||||
|
||||
|
||||
class DecodedIdModel(BaseModel):
|
||||
@@ -25,12 +23,6 @@ class LibraryFolderIdModel(BaseModel):
|
||||
id: LibraryFolderDatabaseIdField
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
def security() -> IdEncodingHelper:
|
||||
BaseDatabaseIdField.security = IdEncodingHelper(id_secret="testing")
|
||||
return BaseDatabaseIdField.security
|
||||
|
||||
|
||||
def test_decoded_id_schema_override():
|
||||
schema = DecodedIdModel.schema()
|
||||
assert schema["properties"]["id"]["type"] == "string", schema
|
||||
@@ -41,25 +33,25 @@ def test_encoded_id_schema_override():
|
||||
assert schema["properties"]["id"]["type"] == "string", schema
|
||||
|
||||
|
||||
def test_decoded_database_id_field(security: IdEncodingHelper):
|
||||
def test_decoded_database_id_field():
|
||||
decoded_id = 1
|
||||
encoded_id = security.encode_id(decoded_id)
|
||||
encoded_id = DecodedDatabaseIdField.encode(decoded_id)
|
||||
model = DecodedIdModel(id=encoded_id)
|
||||
assert model.id == decoded_id
|
||||
assert DecodedDatabaseIdField.encode(model.id) == encoded_id
|
||||
|
||||
|
||||
def test_library_folder_database_id_field(security: IdEncodingHelper):
|
||||
def test_library_folder_database_id_field():
|
||||
decoded_id = 1
|
||||
encoded_id = f"F{security.encode_id(decoded_id)}"
|
||||
encoded_id = f"F{DecodedDatabaseIdField.encode(decoded_id)}"
|
||||
model = LibraryFolderIdModel(id=encoded_id)
|
||||
assert model.id == decoded_id
|
||||
assert LibraryFolderDatabaseIdField.encode(model.id) == encoded_id
|
||||
|
||||
|
||||
def test_library_folder_database_id_field_raises_validation_error(security: IdEncodingHelper):
|
||||
def test_library_folder_database_id_field_raises_validation_error():
|
||||
decoded_id = 1
|
||||
# The encoded ID must start with 'F'
|
||||
invalid_encoded_id = security.encode_id(decoded_id)
|
||||
invalid_encoded_id = DecodedDatabaseIdField.encode(decoded_id)
|
||||
with pytest.raises(ValidationError):
|
||||
LibraryFolderIdModel(id=invalid_encoded_id)
|
||||
|
||||
Reference in New Issue
Block a user