diff --git a/pagure/lib/__init__.py b/pagure/lib/__init__.py index 1160ef4..8fd0df6 100644 --- a/pagure/lib/__init__.py +++ b/pagure/lib/__init__.py @@ -2012,11 +2012,16 @@ def get_project(session, name, user=None, namespace=None): query = session.query( model.Project ).filter( - model.Project.name == name - ).filter( - model.Project.namespace == namespace + func.lower(model.Project.name) == name.lower() ) + if namespace: + query = query.filter( + func.lower(model.Project.namespace) == namespace.lower() + ) + else: + query = query.filter(model.Project.namespace == namespace) + if user is not None: query = query.filter( model.User.user == user diff --git a/tests/test_pagure_lib.py b/tests/test_pagure_lib.py index a773f7f..5ea48f4 100644 --- a/tests/test_pagure_lib.py +++ b/tests/test_pagure_lib.py @@ -927,6 +927,23 @@ class PagureLibtests(tests.Modeltests): self.session.commit() self.assertEqual(msg, 'Project "testproject" created') + # Try creating an existing project using a different case + self.assertRaises( + pagure.exceptions.PagureException, + pagure.lib.new_project, + session=self.session, + user='pingou', + name='TestProject', + blacklist=[], + allowed_prefix=[], + gitfolder=gitfolder, + docfolder=docfolder, + ticketfolder=ticketfolder, + requestfolder=requestfolder, + description='description for testproject', + parent_id=None, + ) + repo = pagure.lib.get_project(self.session, 'testproject') self.assertEqual(repo.path, 'testproject.git')