@@ -292,6 +292,58 @@ async def test_search_by_entity_type(
292292 assert item .root .type == field .value
293293
294294
295+ # TODO: figure out how to run search tests fully parallel
296+ @pytest .mark .xdist_group ("search" )
297+ @pytest .mark .asyncio
298+ async def test_search_project_with_dash (
299+ create_project_model : CreateProjectCall ,
300+ regular_user : UserInfo ,
301+ search_query : SearchQueryCall ,
302+ search_reprovision : SearchReprovisionCall ,
303+ sanic_client_with_solr : SanicASGITestClient ,
304+ app_manager_instance : TestDependencyManager ,
305+ ) -> None :
306+ p1 = await create_project_model (sanic_client_with_solr , "project-with-dash" )
307+ await search_reprovision (app_manager_instance )
308+
309+ result = await search_query (sanic_client_with_solr , "project-with-dash" , regular_user )
310+ assert_search_result (result , [p1 ], check_order = False )
311+ result = await search_query (sanic_client_with_solr , "project-with-hash" , regular_user )
312+ assert_search_result (result , [p1 ], check_order = False )
313+
314+
315+ # TODO: figure out how to run search tests fully parallel
316+ @pytest .mark .xdist_group ("search" )
317+ @pytest .mark .asyncio
318+ async def test_search_domain_and_email (
319+ create_project_model : CreateProjectCall ,
320+ regular_user : UserInfo ,
321+ search_query : SearchQueryCall ,
322+ search_reprovision : SearchReprovisionCall ,
323+ sanic_client_with_solr : SanicASGITestClient ,
324+ app_manager_instance : TestDependencyManager ,
325+ ) -> None :
326+ p1 = await create_project_model (
327+ sanic_client_with_solr ,
328+ "bob's project" ,
329+ description = "Bob's e-mail address is bob@microsoft.com - keep it safe. Check the homepage at https://bob.me/about!" ,
330+ )
331+ await search_reprovision (app_manager_instance )
332+
333+ result = await search_query (sanic_client_with_solr , "bob@microsoft.com" , regular_user )
334+ assert_search_result (result , [p1 ], check_order = False )
335+ result = await search_query (sanic_client_with_solr , "https://bob.me/about" , regular_user )
336+ assert_search_result (result , [p1 ], check_order = False )
337+ result = await search_query (sanic_client_with_solr , "bob.me" , regular_user )
338+ assert_search_result (result , [p1 ], check_order = False )
339+ result = await search_query (sanic_client_with_solr , "e-mail" , regular_user )
340+ assert_search_result (result , [p1 ], check_order = False )
341+ result = await search_query (sanic_client_with_solr , "email" , regular_user )
342+ assert_search_result (result , [p1 ], check_order = False )
343+ result = await search_query (sanic_client_with_solr , "bob's project" , regular_user )
344+ assert_search_result (result , [p1 ], check_order = False )
345+
346+
295347def __entity_id (e : SearchEntity ) -> str :
296348 match e .root :
297349 case SearchProject () as p :
0 commit comments