Skip to content

Commit

Permalink
Revert "feat: DOI reserved for version table" (#40)
Browse files Browse the repository at this point in the history
  • Loading branch information
megasanjay authored Jan 15, 2024
1 parent 7a5a63b commit 1435398
Show file tree
Hide file tree
Showing 4 changed files with 22 additions and 60 deletions.
29 changes: 0 additions & 29 deletions alembic/versions/0defbfc71c59_add_identifier_to_version.py

This file was deleted.

5 changes: 1 addition & 4 deletions apis/dataset.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,11 +17,10 @@
"title": fields.String(required=True),
"changelog": fields.String(required=True),
"created_at": fields.String(required=True),
"doi": fields.String(required=False),
"doi": fields.String(required=True),
"published": fields.Boolean(required=True),
"participants": fields.List(fields.String, required=True),
"published_on": fields.String(required=True),
"identifier": fields.Integer(required=True),
},
)

Expand Down Expand Up @@ -193,8 +192,6 @@ def post(self, study_id: int, dataset_id: int):
dataset_versions = model.Version.from_data(data_obj, data)
model.db.session.add(dataset_versions)
model.db.session.commit()
dataset_versions.doi = f"10.fairhub/{dataset_versions.identifier}"
model.db.session.commit()
return dataset_versions.to_dict(), 201


Expand Down
16 changes: 4 additions & 12 deletions model/version.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
import datetime
import uuid
from datetime import timezone
from sqlalchemy import Table, Sequence

from sqlalchemy import Table

import model
from model.dataset import Dataset
Expand Down Expand Up @@ -30,19 +31,10 @@ def __init__(self, dataset):
published = db.Column(db.BOOLEAN, nullable=False)
changelog = db.Column(db.String, nullable=False)
updated_on = db.Column(db.BigInteger, nullable=False)
doi = db.Column(db.String, nullable=False)
created_at = db.Column(db.BigInteger, nullable=False)
published_on = db.Column(db.BigInteger, nullable=False)

identifier = db.Column(
db.Integer,
Sequence("version_identifier_seq"),
nullable=False,
unique=True,
server_default=Sequence("version_identifier_seq").next_value(),
)

doi = db.Column(db.String, nullable=True, unique=True)

version_readme = db.relationship(
"VersionReadme",
uselist=False,
Expand All @@ -65,7 +57,6 @@ def to_dict(self):
"published_on": self.published_on,
"updated_on": self.updated_on,
"created_at": self.created_at,
"identifier": self.identifier,
"doi": self.doi,
"published": self.published,
"readme": self.version_readme.content if self.version_readme else ""
Expand All @@ -85,6 +76,7 @@ def from_data(dataset: Dataset, data: dict):
def update(self, data: dict):
self.title = data["title"]
self.published = data["published"] if "published" in data else False
self.doi = data["doi"] if "doi" in data else ""
self.published_on = datetime.datetime.now(timezone.utc).timestamp()
self.updated_on = datetime.datetime.now(timezone.utc).timestamp()
# self.participants[:] = data["participants"]
Expand Down
32 changes: 17 additions & 15 deletions tests/functional/test_study_version_api.py
Original file line number Diff line number Diff line change
Expand Up @@ -22,15 +22,17 @@ def test_post_dataset_version(clients):
json={
"title": "Dataset Version 1.0",
"published": False,
"doi": "doi:test",
"changelog": "changelog testing here",
},
)

assert response.status_code == 201
response_data = json.loads(response.data)
pytest.global_dataset_version_id = response_data["id"]
assert response_data["title"] == "Dataset Version 1.0"
assert response_data["published"] is False
assert response_data["doi"] == f"10.fairhub/{response_data['identifier']}"
assert response_data["doi"] == "doi:test"
assert response_data["changelog"] == "changelog testing here"


Expand Down Expand Up @@ -68,23 +70,20 @@ def test_get_all_dataset_versions(clients):
assert len(response_data) == 1
assert len(admin_response_data) == 1
assert len(editor_response_data) == 1

assert response_data[0]["title"] == "Dataset Version 1.0"
assert response_data[0]["published"] is False
assert response_data[0]["doi"] == "doi:test"
assert response_data[0]["changelog"] == "changelog testing here"
assert response_data[0]["doi"] == f"10.fairhub/{response_data[0]['identifier']}"

assert admin_response_data[0]["title"] == "Dataset Version 1.0"
assert admin_response_data[0]["published"] is False
assert (
admin_response_data[0]["doi"] == f"10.fairhub/{response_data[0]['identifier']}"
)
assert admin_response_data[0]["doi"] == "doi:test"
assert admin_response_data[0]["changelog"] == "changelog testing here"

assert editor_response_data[0]["title"] == "Dataset Version 1.0"
assert editor_response_data[0]["published"] is False
assert (
editor_response_data[0]["doi"] == f"10.fairhub/{response_data[0]['identifier']}"
)
assert editor_response_data[0]["doi"] == "doi:test"
assert editor_response_data[0]["changelog"] == "changelog testing here"


Expand Down Expand Up @@ -123,17 +122,17 @@ def test_get_dataset_version(clients):

assert response_data["title"] == "Dataset Version 1.0"
assert response_data["published"] is False
assert response_data["doi"] == "doi:test"
assert response_data["changelog"] == "changelog testing here"
assert response_data["doi"] == f"10.fairhub/{response_data['identifier']}"

assert admin_response_data["title"] == "Dataset Version 1.0"
assert admin_response_data["published"] is False
assert admin_response_data["doi"] == f"10.fairhub/{response_data['identifier']}"
assert admin_response_data["doi"] == "doi:test"
assert admin_response_data["changelog"] == "changelog testing here"

assert editor_response_data["title"] == "Dataset Version 1.0"
assert editor_response_data["published"] is False
assert editor_response_data["doi"] == f"10.fairhub/{response_data['identifier']}"
assert editor_response_data["doi"] == "doi:test"
assert editor_response_data["changelog"] == "changelog testing here"


Expand All @@ -155,25 +154,27 @@ def test_put_dataset_version(clients):
"title": "Dataset Version 2.0",
"changelog": "Updating the changelog",
"published": False,
"doi": "doi:test123",
"readme": "readme testing here",
},
)

assert response.status_code == 200
response_data = json.loads(response.data)
print(response_data)

assert response_data["title"] == "Dataset Version 2.0"
assert response_data["changelog"] == "Updating the changelog"
assert response_data["doi"] == f"10.fairhub/{response_data['identifier']}"
assert response_data["doi"] == "doi:test123"
assert response_data["readme"] == ""
assert response_data["published"] is False

admin_response = _admin_client.put(
f"/study/{study_id}/dataset/{dataset_id}/version/{version_id}",
json={
"title": "Dataset Version 3.0",
"changelog": "Changelog modified by admin",
"published": False,
"doi": "doi:test",
"readme": "readme modified by editor",
},
)
Expand All @@ -184,8 +185,7 @@ def test_put_dataset_version(clients):
assert admin_response_data["title"] == "Dataset Version 3.0"
assert admin_response_data["changelog"] == "Changelog modified by admin"
assert admin_response_data["published"] is False
assert admin_response_data["doi"] == f"10.fairhub/{response_data['identifier']}"

assert admin_response_data["doi"] == "doi:test"
assert admin_response_data["readme"] == ""

editor_response = _editor_client.put(
Expand All @@ -194,6 +194,7 @@ def test_put_dataset_version(clients):
"title": "Dataset Version 4.0",
"changelog": "Changelog modified by editor",
"published": False,
"doi": "doi:test",
"readme": "readme modified by editor",
},
)
Expand All @@ -206,6 +207,7 @@ def test_put_dataset_version(clients):
"title": "Dataset Version 5.0",
"changelog": "Changelog modified by viewer",
"published": False,
"doi": "test:doi",
"readme": "readme modified by viewer",
},
)
Expand Down

0 comments on commit 1435398

Please sign in to comment.