Source code for users_api.tests.test_commands_datasets

# pylint: disable=W0621,C0114,C0116,W0212,W0613
import tempfile

from datasets_api.models import Dataset
from django.contrib.auth.models import Group
from django.core.management import call_command
from gpf_instance.gpf_instance import WGPFInstance

from users_api.management.commands.datasets_export import Command


[docs] def test_datasets_export(t4c8_wgpf_instance: WGPFInstance) -> None: expected_output = """dataset,groups t4c8_dataset,any_dataset;t4c8_dataset t4c8_study_1,any_dataset;t4c8_study_1 t4c8_study_2,any_dataset;t4c8_study_2 t4c8_study_4,any_dataset;t4c8_study_4 """ with tempfile.NamedTemporaryFile(mode="w+", delete=False) as temp: command = Command(gpf_instance=t4c8_wgpf_instance) call_command(command, file=temp.name) assert set(temp.read().split()) == set(expected_output.split())
[docs] def test_datasets_restore(db: None) -> None: # noqa: ARG001 comp, _ = Dataset.objects.get_or_create(dataset_id="comp") comp.groups.add(Group.objects.create(name="any_dataset")) comp.groups.add(Group.objects.create(name="comp")) input_csv = """dataset,groups comp,any_dataset;comp;new_test_group """ with tempfile.NamedTemporaryFile(mode="w+", delete=False) as temp: temp.write(input_csv) temp.seek(0) call_command("datasets_restore", file=temp.name) # I needed to refresh the dataset object, otherwise # its groups are empty comp = Dataset.objects.get(dataset_id="comp") assert Group.objects.filter(name="new_test_group").exists() assert {group.name for group in comp.groups.all()} == { "any_dataset", "comp", "new_test_group", }