Skip to content

Commit

Permalink
Migrate zarr tests
Browse files Browse the repository at this point in the history
  • Loading branch information
danlamanna committed Aug 30, 2022
1 parent f82dc67 commit 364c9fe
Show file tree
Hide file tree
Showing 8 changed files with 47 additions and 40 deletions.
36 changes: 0 additions & 36 deletions dandiapi/api/tests/factories.py
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,6 @@
UserMetadata,
Version,
)
from dandiapi.zarr.models import ZarrArchive, ZarrUploadFile


class UserMetadataFactory(factory.django.DjangoModelFactory):
Expand Down Expand Up @@ -234,38 +233,3 @@ def etag(self):
class EmbargoedUploadFactory(UploadFactory):
class Meta:
model = EmbargoedUpload


class ZarrArchiveFactory(factory.django.DjangoModelFactory):
class Meta:
model = ZarrArchive

zarr_id = factory.Faker('uuid4')
name = factory.Faker('catch_phrase')
dandiset = factory.SubFactory(DandisetFactory)


class ZarrUploadFileFactory(factory.django.DjangoModelFactory):
class Meta:
model = ZarrUploadFile

zarr_archive = factory.SubFactory(ZarrArchiveFactory)

@factory.lazy_attribute
def path(self):
# No / prefix
return faker.Faker().file_path(extension='nwb')[1:]

@factory.lazy_attribute
def blob(self):
return django_files.File(
django_files.base.ContentFile(faker.Faker().binary(length=100)).file,
self.zarr_archive.s3_path(self.path),
)

@factory.lazy_attribute
def etag(self):
h = hashlib.md5()
h.update(self.blob.read())
self.blob.seek(0)
return h.hexdigest()
8 changes: 4 additions & 4 deletions dandiapi/api/tests/conftest.py → dandiapi/conftest.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,7 @@
from storages.backends.s3boto3 import S3Boto3Storage

from dandiapi.api.storage import create_s3_storage

from .factories import (
from dandiapi.api.tests.factories import (
AssetBlobFactory,
DandisetFactory,
DraftAssetFactory,
Expand All @@ -20,9 +19,8 @@
SocialAccountFactory,
UploadFactory,
UserFactory,
ZarrArchiveFactory,
ZarrUploadFileFactory,
)
from dandiapi.zarr.tests.factories import ZarrArchiveFactory, ZarrUploadFileFactory

register(PublishedAssetFactory, _name='published_asset')
register(DraftAssetFactory, _name='draft_asset')
Expand All @@ -38,6 +36,8 @@
register(UserFactory)
register(SocialAccountFactory)
register(UploadFactory)

# zarr app
register(ZarrArchiveFactory)
register(ZarrUploadFileFactory)

Expand Down
43 changes: 43 additions & 0 deletions dandiapi/zarr/tests/factories.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
import hashlib

from django.core import files as django_files
import factory
import faker

from dandiapi.api.tests.factories import DandisetFactory
from dandiapi.zarr.models import ZarrArchive, ZarrUploadFile


class ZarrArchiveFactory(factory.django.DjangoModelFactory):
class Meta:
model = ZarrArchive

zarr_id = factory.Faker('uuid4')
name = factory.Faker('catch_phrase')
dandiset = factory.SubFactory(DandisetFactory)


class ZarrUploadFileFactory(factory.django.DjangoModelFactory):
class Meta:
model = ZarrUploadFile

zarr_archive = factory.SubFactory(ZarrArchiveFactory)

@factory.lazy_attribute
def path(self):
# No / prefix
return faker.Faker().file_path(extension='nwb')[1:]

@factory.lazy_attribute
def blob(self):
return django_files.File(
django_files.base.ContentFile(faker.Faker().binary(length=100)).file,
self.zarr_archive.s3_path(self.path),
)

@factory.lazy_attribute
def etag(self):
h = hashlib.md5()
h.update(self.blob.read())
self.blob.seek(0)
return h.hexdigest()
File renamed without changes.
File renamed without changes.
File renamed without changes.

0 comments on commit 364c9fe

Please sign in to comment.