@@ -73,7 +73,10 @@ def test_discover_plugins_uses_repo_examples_fallback_when_default_missing(self)
7373 self .loader ._DEFAULT_PLUGIN_DIR = str (missing_default )
7474 self .loader .PLUGIN_DIR = str (missing_default )
7575
76- with mock .patch .object (self .loader , "_repo_examples_plugin_dir" , return_value = str (examples )):
76+ with (
77+ mock .patch .object (self .loader , "_repo_examples_plugin_dir" , return_value = str (examples )),
78+ mock .patch .object (self .loader , "_cwd_examples_plugin_dir" , return_value = str (root / "nope" )),
79+ ):
7780 manifests = self .loader .discover_plugins ()
7881
7982 self .assertEqual (len (manifests ), 1 )
@@ -92,12 +95,36 @@ def test_discover_plugins_uses_repo_examples_when_default_exists_but_empty(self)
9295 self .loader ._DEFAULT_PLUGIN_DIR = str (empty_default )
9396 self .loader .PLUGIN_DIR = str (empty_default )
9497
95- with mock .patch .object (self .loader , "_repo_examples_plugin_dir" , return_value = str (examples )):
98+ with (
99+ mock .patch .object (self .loader , "_repo_examples_plugin_dir" , return_value = str (examples )),
100+ mock .patch .object (self .loader , "_cwd_examples_plugin_dir" , return_value = str (root / "nope" )),
101+ ):
96102 manifests = self .loader .discover_plugins ()
97103
98104 self .assertEqual (len (manifests ), 1 )
99105 self .assertEqual (manifests [0 ].get ("plugin" , {}).get ("id" ), "bundled" )
100106
107+ def test_discover_plugins_uses_cwd_examples_fallback_when_repo_path_missing (self ):
108+ tmpdir = make_repo_tmpdir (prefix = "_tmp_plugin_loader_" )
109+ self .addCleanup (tmpdir .cleanup )
110+ root = Path (tmpdir .name )
111+ examples = root / "examples" / "plugins"
112+ examples .mkdir (parents = True )
113+ self ._create_plugin (examples , "cwd-bundled" )
114+
115+ missing_default = root / "missing-default"
116+ self .loader ._DEFAULT_PLUGIN_DIR = str (missing_default )
117+ self .loader .PLUGIN_DIR = str (missing_default )
118+
119+ with (
120+ mock .patch .object (self .loader , "_repo_examples_plugin_dir" , return_value = str (root / "nope" )),
121+ mock .patch .object (self .loader , "_cwd_examples_plugin_dir" , return_value = str (examples )),
122+ ):
123+ manifests = self .loader .discover_plugins ()
124+
125+ self .assertEqual (len (manifests ), 1 )
126+ self .assertEqual (manifests [0 ].get ("plugin" , {}).get ("id" ), "cwd-bundled" )
127+
101128
102129if __name__ == "__main__" :
103130 unittest .main ()
0 commit comments