Commit dd90890b authored by Mickaël Desfrênes's avatar Mickaël Desfrênes
Browse files

faster tests

parent 43ab72e6
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -31,7 +31,7 @@ format: ## Formatage des sources avec Ruff
	uv run ruff format ./

test: ## Lancer les tests
	cd src && uv run jama test
	cd src && JAMA_SQLITE_DB_PATH=:memory: uv run jama test

build:build-ui-front  ## build package
	rm -rf dist
+21 −20
Original line number Diff line number Diff line
@@ -23,38 +23,39 @@ object_classes = [


class AnnotationTestCase(TestCase):
    def setUp(self):
    @classmethod
    def setUpTestData(cls):
        # load file types, create permissions
        load_fixtures()

        self.test_user = User.objects.create(username="basic_user")
        self.basic_user_key = "acme"
        cls.test_user = User.objects.create(username="basic_user")
        cls.basic_user_key = "acme"

        # only django superusers have access to certain rpc methods.
        self.admin_user = User.objects.create(username="admin_user", is_superuser=True)
        cls.admin_user = User.objects.create(username="admin_user", is_superuser=True)
        rpc_methods.activate_rpc_access(
            self.admin_user, self.test_user.username, self.basic_user_key
            cls.admin_user, cls.test_user.username, cls.basic_user_key
        )

        self.test_project = models.Project.objects.create(
        cls.test_project = models.Project.objects.create(
            label="projet test", description="projet test"
        )
        self.test_project_root_collection = models.Collection.objects.create(
            title="root", parent_id=None, project=self.test_project
        cls.test_project_root_collection = models.Collection.objects.create(
            title="root", parent_id=None, project=cls.test_project
        )
        self.test_metadataset = models.MetadataSet.objects.create(
            title="test metadata set", project=self.test_project
        cls.test_metadataset = models.MetadataSet.objects.create(
            title="test metadata set", project=cls.test_project
        )

        self.admin_role = models.Role.objects.create(
            label="admin", project=self.test_project
        cls.admin_role = models.Role.objects.create(
            label="admin", project=cls.test_project
        )
        # give all permissions to admin role
        for object_class in object_classes:
            models.ObjectPermission.objects.get_or_create(
                object_class=object_class,
                object_pk=None,
                role=self.admin_role,
                role=cls.admin_role,
                object_create=True,
                object_read=True,
                object_update=True,
@@ -63,28 +64,28 @@ class AnnotationTestCase(TestCase):

        # give admin role to the user on the project
        models.ProjectAccess.objects.get_or_create(
            project=self.test_project, user=self.test_user, role=self.admin_role
            project=cls.test_project, user=cls.test_user, role=cls.admin_role
        )
        models.ProjectAccess.objects.get_or_create(
            project=self.test_project, user=self.admin_user, role=self.admin_role
            project=cls.test_project, user=cls.admin_user, role=cls.admin_role
        )
        # public user
        self.public_user = User.objects.create(username="public_user")
        self.public_role = models.Role.objects.create(
            label="public", project=self.test_project
        cls.public_user = User.objects.create(username="public_user")
        cls.public_role = models.Role.objects.create(
            label="public", project=cls.test_project
        )
        for object_class in object_classes:
            models.ObjectPermission.objects.get_or_create(
                object_class=object_class,
                object_pk=None,
                role=self.public_role,
                role=cls.public_role,
                object_create=True,
                object_read=True,
                object_update=True,
                object_delete=True,
            )
        models.ProjectAccess.objects.get_or_create(
            project=self.test_project, user=self.public_user, role=self.public_role
            project=cls.test_project, user=cls.public_user, role=cls.public_role
        )

    def test_add_annotation(self):
+24 −21
Original line number Diff line number Diff line
@@ -34,32 +34,32 @@ crud = ["create", "read", "update", "delete"]


class ServiceTestCase(TestCase):
    def setUp(self):
        self.factory = RequestFactory()
    @classmethod
    def setUpTestData(cls):
        # load file types, create permissions
        load_fixtures()

        self.test_user = User.objects.create(username="basic_user")
        self.basic_user_key = "acme"
        cls.test_user = User.objects.create(username="basic_user")
        cls.basic_user_key = "acme"

        # only django superusers have access to certain rpc methods.
        self.admin_user = User.objects.create(username="admin_user", is_superuser=True)
        cls.admin_user = User.objects.create(username="admin_user", is_superuser=True)
        methods.activate_rpc_access(
            self.admin_user, self.test_user.username, self.basic_user_key
            cls.admin_user, cls.test_user.username, cls.basic_user_key
        )

        self.test_project = models.Project.objects.create(
        cls.test_project = models.Project.objects.create(
            label="projet test", description="projet test"
        )
        self.test_project_root_collection = models.Collection.objects.create(
            title="root", parent_id=None, project=self.test_project
        cls.test_project_root_collection = models.Collection.objects.create(
            title="root", parent_id=None, project=cls.test_project
        )
        self.test_metadataset = models.MetadataSet.objects.create(
            title="test metadata set", project=self.test_project
        cls.test_metadataset = models.MetadataSet.objects.create(
            title="test metadata set", project=cls.test_project
        )

        self.admin_role = models.Role.objects.create(
            label="admin", project=self.test_project
        cls.admin_role = models.Role.objects.create(
            label="admin", project=cls.test_project
        )

        # give all permissions to admin role
@@ -67,7 +67,7 @@ class ServiceTestCase(TestCase):
            models.ObjectPermission.objects.get_or_create(
                object_class=object_class,
                object_pk=None,
                role=self.admin_role,
                role=cls.admin_role,
                object_create=True,
                object_read=True,
                object_update=True,
@@ -76,22 +76,22 @@ class ServiceTestCase(TestCase):

        # give admin role to the user on the project
        models.ProjectAccess.objects.get_or_create(
            project=self.test_project, user=self.test_user, role=self.admin_role
            project=cls.test_project, user=cls.test_user, role=cls.admin_role
        )
        models.ProjectAccess.objects.get_or_create(
            project=self.test_project, user=self.admin_user, role=self.admin_role
            project=cls.test_project, user=cls.admin_user, role=cls.admin_role
        )
        # public user
        self.public_user = User.objects.create(username="public_user")
        self.public_role = models.Role.objects.create(
            label="public", project=self.test_project
        cls.public_user = User.objects.create(username="public_user")
        cls.public_role = models.Role.objects.create(
            label="public", project=cls.test_project
        )

        for object_class in object_classes:
            models.ObjectPermission.objects.get_or_create(
                object_class=object_class,
                object_pk=None,
                role=self.public_role,
                role=cls.public_role,
                object_create=True,
                object_read=True,
                object_update=True,
@@ -99,9 +99,12 @@ class ServiceTestCase(TestCase):
            )

        models.ProjectAccess.objects.get_or_create(
            project=self.test_project, user=self.public_user, role=self.public_role
            project=cls.test_project, user=cls.public_user, role=cls.public_role
        )

    def setUp(self):
        self.factory = RequestFactory()

    def test_ping(self):
        self.assertEqual(
            methods.ping(self.test_user), "pong {}".format(self.test_user.username)