@@ -1618,6 +1618,63 @@ def test_media_config(self) -> None:
16181618 )
16191619
16201620
1621+ class MediaConfigModuleCallbackTestCase (unittest .HomeserverTestCase ):
1622+ servlets = [
1623+ media .register_servlets ,
1624+ admin .register_servlets ,
1625+ login .register_servlets ,
1626+ ]
1627+
1628+ def make_homeserver (
1629+ self , reactor : ThreadedMemoryReactorClock , clock : Clock
1630+ ) -> HomeServer :
1631+ config = self .default_config ()
1632+
1633+ self .storage_path = self .mktemp ()
1634+ self .media_store_path = self .mktemp ()
1635+ os .mkdir (self .storage_path )
1636+ os .mkdir (self .media_store_path )
1637+ config ["media_store_path" ] = self .media_store_path
1638+
1639+ provider_config = {
1640+ "module" : "synapse.media.storage_provider.FileStorageProviderBackend" ,
1641+ "store_local" : True ,
1642+ "store_synchronous" : False ,
1643+ "store_remote" : True ,
1644+ "config" : {"directory" : self .storage_path },
1645+ }
1646+
1647+ config ["media_storage_providers" ] = [provider_config ]
1648+
1649+ return self .setup_test_homeserver (config = config )
1650+
1651+ def prepare (self , reactor : MemoryReactor , clock : Clock , hs : HomeServer ) -> None :
1652+ self .user = self .register_user ("user" , "password" )
1653+ self .tok = self .login ("user" , "password" )
1654+
1655+ hs .get_module_api ().register_media_repository_callbacks (
1656+ get_media_config_for_user = self .get_media_config_for_user ,
1657+ )
1658+
1659+ async def get_media_config_for_user (
1660+ self ,
1661+ user_id : str ,
1662+ ) -> Optional [JsonDict ]:
1663+ # We echo back the user_id and set a custom upload size.
1664+ return {"m.upload.size" : 1024 , "user_id" : user_id }
1665+
1666+ def test_media_config (self ) -> None :
1667+ channel = self .make_request (
1668+ "GET" ,
1669+ "/_matrix/client/v1/media/config" ,
1670+ shorthand = False ,
1671+ access_token = self .tok ,
1672+ )
1673+ self .assertEqual (channel .code , 200 )
1674+ self .assertEqual (channel .json_body ["m.upload.size" ], 1024 )
1675+ self .assertEqual (channel .json_body ["user_id" ], self .user )
1676+
1677+
16211678class RemoteDownloadLimiterTestCase (unittest .HomeserverTestCase ):
16221679 servlets = [
16231680 media .register_servlets ,
0 commit comments