def test_raises_action_failed_when_npm_fails(self, OSUtilMock, SubprocessNpmMock): osutils = OSUtilMock.return_value subprocess_npm = SubprocessNpmMock.return_value builder_instance = SubprocessNpmMock.return_value builder_instance.run.side_effect = NpmExecutionError(message="boom!") action = NodejsNpmPackAction( "artifacts", "scratch_dir", "manifest", osutils=osutils, subprocess_npm=subprocess_npm ) with self.assertRaises(ActionFailedError) as raised: action.execute() self.assertEqual(raised.exception.args[0], "NPM Failed: boom!")
def test_tars_and_unpacks_npm_project(self, OSUtilMock, SubprocessNpmMock): osutils = OSUtilMock.return_value subprocess_npm = SubprocessNpmMock.return_value action = NodejsNpmPackAction( "artifacts", "scratch_dir", "manifest", osutils=osutils, subprocess_npm=subprocess_npm ) osutils.dirname.side_effect = lambda value: "/dir:{}".format(value) osutils.abspath.side_effect = lambda value: "/abs:{}".format(value) osutils.joinpath.side_effect = lambda a, b: "{}/{}".format(a, b) subprocess_npm.run.return_value = "package.tar" action.execute() subprocess_npm.run.assert_called_with(["pack", "-q", "file:/abs:/dir:manifest"], cwd="scratch_dir") osutils.extract_tarfile.assert_called_with("scratch_dir/package.tar", "artifacts")