def test_shell_discovery_plugin_scan_exceptions(): """Test that the shell discovery plugin properly respects exceptions.""" shdp = ShellDiscoveryPlugin() if not shdp.file_command_exists(): pytest.skip( "File command does not exist. Skipping test that requires it.") package = Package("valid_package", os.path.join(os.path.dirname(__file__), "valid_package")) exceptions = Exceptions( os.path.join(os.path.dirname(__file__), "exceptions.yaml")) shdp.scan(package, "level", exceptions) expected_src = [ "test.sh", "oddextensionsh.source", "oddextensionbash.source", "oddextensionzsh.source", "oddextensioncsh.source", "oddextensionksh.source", "oddextensiondash.source", ] # We have to add the path to each of the above...yuck expected_src_fullpath = [ os.path.join(package.path, filename) for filename in expected_src ] # Neat trick to verify that two unordered lists are the same assert set(package["shell_src"]) == set(expected_src_fullpath)
def test_shell_discovery_plugin_scan_invalid(): """Test that the discovery plugin doesn't find non-shell files.""" shdp = ShellDiscoveryPlugin() if not shdp.file_command_exists(): pytest.skip( "File command does not exist. Skipping test that requires it.") package = Package( "invalid_package", os.path.join(os.path.dirname(__file__), "invalid_package")) shdp.scan(package, "level") assert not package["shell_src"]
def test_shell_discovery_plugin_scan_valid(): """Test that the Shell discovery plugin finds valid shell files.""" shdp = ShellDiscoveryPlugin() package = Package("valid_package", os.path.join(os.path.dirname(__file__), "valid_package")) shdp.scan(package, "level") expected = ["test.sh", os.path.join("ignore_this", "ignoreme.bash")] if shdp.file_command_exists(): expected += [ "oddextensionsh.source", "oddextensionbash.source", "oddextensionzsh.source", "oddextensioncsh.source", "oddextensionksh.source", "oddextensiondash.source", ] # We have to add the path to each of the above...yuck expected_fullpath = [ os.path.join(package.path, filename) for filename in expected ] # Neat trick to verify that two unordered lists are the same assert set(package["shell_src"]) == set(expected_fullpath)