@@ -503,18 +503,43 @@ async def test_async_get_areas_by_alias(
503503
504504 assert len (area_registry .areas ) == 2
505505
506- alias1_list = area_registry .async_get_areas_by_alias ("A l i a s_1" )
507- alias2_list = area_registry .async_get_areas_by_alias ("A l i a s_2" )
508- alias3_list = area_registry .async_get_areas_by_alias ("A l i a s_3" )
509-
510- assert len (alias1_list ) == 2
511- assert len (alias2_list ) == 1
512- assert len (alias3_list ) == 1
513-
514- assert area1 in alias1_list
515- assert area1 in alias2_list
516- assert area2 in alias1_list
517- assert area2 in alias3_list
506+ assert area_registry .async_get_areas_by_alias ("A l i a s_1" ) == [area1 , area2 ]
507+ assert area_registry .async_get_areas_by_alias ("A l i a s_2" ) == [area1 ]
508+ assert area_registry .async_get_areas_by_alias ("A l i a s_3" )
509+
510+
511+ async def test_async_get_areas_by_alias_collisions (
512+ area_registry : ar .AreaRegistry ,
513+ ) -> None :
514+ """Make sure we can get the areas by alias when the aliases have collisions."""
515+ area = area_registry .async_create ("Mock1" )
516+ assert area_registry .async_get_areas_by_alias ("A l i a s 1" ) == []
517+
518+ # Add an alias
519+ updated_area = area_registry .async_update (area .id , aliases = {"alias1" })
520+ assert area_registry .async_get_areas_by_alias ("A l i a s 1" ) == [updated_area ]
521+
522+ # Add a colliding alias
523+ updated_area = area_registry .async_update (area .id , aliases = {"alias1" , "alias 1" })
524+ assert area_registry .async_get_areas_by_alias ("A l i a s 1" ) == [updated_area ]
525+
526+ # Add a colliding alias
527+ updated_area = area_registry .async_update (
528+ area .id , aliases = {"alias1" , "alias 1" , "alias 1" }
529+ )
530+ assert area_registry .async_get_areas_by_alias ("A l i a s 1" ) == [updated_area ]
531+
532+ # Remove a colliding alias
533+ updated_area = area_registry .async_update (area .id , aliases = {"alias1" , "alias 1" })
534+ assert area_registry .async_get_areas_by_alias ("A l i a s 1" ) == [updated_area ]
535+
536+ # Remove a colliding alias
537+ updated_area = area_registry .async_update (area .id , aliases = {"alias1" })
538+ assert area_registry .async_get_areas_by_alias ("A l i a s 1" ) == [updated_area ]
539+
540+ # Remove all aliases
541+ updated_area = area_registry .async_update (area .id , aliases = {})
542+ assert area_registry .async_get_areas_by_alias ("A l i a s 1" ) == []
518543
519544
520545async def test_async_get_area_by_name_not_found (area_registry : ar .AreaRegistry ) -> None :
0 commit comments