@@ -609,3 +609,43 @@ async def test_migration_to_dcb9648c3c15(app_manager_instance: DependencyManager
609609 assert k8s_objs [1 ].tuple ()[0 ] == "amalthea.dev"
610610 assert k8s_objs [1 ].tuple ()[1 ] == "v1alpha1"
611611 assert k8s_objs [1 ].tuple ()[2 ] == "jupyterserver"
612+
613+
614+ @pytest .mark .asyncio
615+ async def test_migration_to_c8061499b966 (app_manager_instance : DependencyManager , admin_user : UserInfo ) -> None :
616+ run_migrations_for_app ("common" , "e117405fed51" )
617+ async with app_manager_instance .config .db .async_session_maker () as session , session .begin ():
618+ await session .execute (
619+ sa .text (
620+ "INSERT into "
621+ "common.k8s_objects(name, namespace, manifest, deleted, kind, version, cluster, user_id) "
622+ "VALUES ('name_pod', 'ns', '{}', FALSE, 'pod', 'v1', 'renkulab', 'user_id')"
623+ )
624+ )
625+ await session .execute (
626+ sa .text (
627+ "INSERT into "
628+ "common.k8s_objects(name, namespace, manifest, deleted, kind, version, cluster, user_id) "
629+ "VALUES ('name_js', 'ns', '{}', FALSE, 'jupyterserver', 'amalthea.dev/v1alpha1', 'renkulab', 'user_id')"
630+ )
631+ )
632+ run_migrations_for_app ("common" , "c8061499b966" )
633+ async with app_manager_instance .config .db .async_session_maker () as session , session .begin ():
634+ k8s_objs = (await session .execute (sa .text ("SELECT name, cluster FROM common.k8s_objects" ))).all ()
635+ assert len (k8s_objs ) == 2
636+ # Check that the cluster name was changed
637+ assert k8s_objs [0 ].tuple ()[1 ] == "0RENK1RENK2RENK3RENK4RENK5"
638+ assert k8s_objs [1 ].tuple ()[1 ] == "0RENK1RENK2RENK3RENK4RENK5"
639+ id = ULID ()
640+ async with app_manager_instance .config .db .async_session_maker () as session , session .begin ():
641+ await session .execute (
642+ sa .text (
643+ "INSERT into "
644+ "common.k8s_objects(name, namespace, manifest, deleted, kind, version, cluster, user_id) "
645+ f"VALUES ('name_pod', 'ns', '{{}}', FALSE, 'pod', 'v1', '{ id } ', 'user_id')"
646+ )
647+ )
648+ async with app_manager_instance .config .db .async_session_maker () as session , session .begin ():
649+ k8s_objs = (await session .execute (sa .text ("SELECT name, cluster FROM common.k8s_objects" ))).all ()
650+ # Check that we can insert another object with the same name, gvk, namespace, but a different cluster
651+ assert len (k8s_objs ) == 3
0 commit comments