def test_build_package_package_created(self, pip_mock, echo_mock): # Arrange self.fs.CreateFile('nut_shell/shell.yml', contents=""" shell: name: nut_shell author: Chuck Norris email: [email protected] description: Save the world version: 1.0.0 """) self.fs.CreateFile('nut_shell/datamodel/metadata.xml') self.fs.CreateFile('nut_shell/datamodel/datamodel.xml') self.fs.CreateFile('nut_shell/datamodel/shellconfig.xml') self.fs.CreateFile('nut_shell/src/driver.py') os.chdir('nut_shell') command_executor = PackCommandExecutor() # Act command_executor.pack() # Assert assertFileExists(self, 'dist/nut_shell.zip') echo_mock.assert_any_call(u'Shell package was successfully created:')
def test_proper_error_message_displayed_when_shell_yml_missing(self, echo_mock): # Arrange self.fs.CreateFile('nut_shell/datamodel/datamodel.xml') os.chdir('nut_shell') command_executor = PackCommandExecutor() # Act command_executor.pack() # Assert echo_mock.assert_any_call(u'shell.yml file is missing')
def test_proper_error_message_displayed_when_shell_yml_is_in_wrong_format(self, echo_mock): # Arrange self.fs.CreateFile('nut_shell/shell.yml', contents='WRONG YAML FORMAT') os.chdir('nut_shell') command_executor = PackCommandExecutor() # Act command_executor.pack() # Assert echo_mock.assert_any_call(u'shell.yml format is wrong')
def test_proper_error_message_displayed_when_shell_yml_missing( self, echo_mock): # Arrange self.fs.CreateFile('nut_shell/datamodel/datamodel.xml') os.chdir('nut_shell') command_executor = PackCommandExecutor() # Act command_executor.pack() # Assert echo_mock.assert_any_call(u'shell.yml file is missing')
def test_proper_error_message_displayed_when_shell_yml_is_in_wrong_format( self, echo_mock): # Arrange self.fs.CreateFile('nut_shell/shell.yml', contents='WRONG YAML FORMAT') os.chdir('nut_shell') command_executor = PackCommandExecutor() # Act command_executor.pack() # Assert echo_mock.assert_any_call(u'shell.yml format is wrong')
def test_pack_layer_one_shell(self, pip_mock, secho_mock): # Arrange self.fs.CreateFile('cloudshell-L1-test/datamodel/datamodel.xml') os.chdir('cloudshell-L1-test') command_executor = PackCommandExecutor() # Act command_executor.pack() # Assert secho_mock.assert_any_call( "Packaging a L1 shell directly via shellfoundry is not supported.", fg="yellow")
def test_tosca_based_shell_packager_called_when_shell_contains_tosca_meta_file( self, pack_mock): # Arrange self.fs.CreateFile('nut-shell/TOSCA-Metadata/TOSCA.meta', contents='TOSCA-Meta-File-Version: 1.0 \n' 'CSAR-Version: 1.1 \n' 'Created-By: Anonymous \n' 'Entry-Definitions: shell-definition.yml') self.fs.CreateFile('nut-shell/shell-definition.yml', contents='SOME SHELL DEFINITION') os.chdir('nut-shell') command_executor = PackCommandExecutor() # Act command_executor.pack() # Assert self.assertTrue(pack_mock.called)
def test_build_package_package_created(self, echo_mock): # Arrange self.fs.CreateFile('nut_shell/shell.yml', contents=""" shell: name: nut_shell author: Chuck Norris email: [email protected] description: Save the world version: 1.0.0 """) self.fs.CreateFile('nut_shell/datamodel/datamodel.xml') self.fs.CreateFile('nut_shell/datamodel/shellconfig.xml') self.fs.CreateFile('nut_shell/src/driver.py') os.chdir('nut_shell') command_executor = PackCommandExecutor() # Act command_executor.pack() # Assert assertFileExists(self, 'dist/nut_shell.zip') echo_mock.assert_any_call(u'Shell package was successfully created:')
def main(args): # # CLI # parser = ArgumentParser(description='create new TG release', formatter_class=RawDescriptionHelpFormatter) parser.add_argument("-r", "--release", help="New release version") parser.add_argument("-m", "--message", help="New commit message") parsed_args = parser.parse_args(args) # # Write new version # with open("shell.yml", 'r') as f: shell = yaml.safe_load(f) shell['shell']['version'] = parsed_args.release with open("shell.yml", 'w') as f: yaml.safe_dump(shell, f, default_flow_style=False) with open("version.txt", 'w') as f: f.write(parsed_args.release) drivermetadata = ET.parse('src/drivermetadata.xml') driver = drivermetadata.getroot() driver.attrib['Version'] = parsed_args.release drivermetadata.write('src/drivermetadata.xml') # # Shellfoundry # PackCommandExecutor().pack() DistCommandExecutor().dist() InstallCommandExecutor().install() # # git # if parsed_args.message: repo = Repo('.') repo.git.add('.') repo.git.commit('-m version {}'.format(parsed_args.message)) repo.git.push()
def dist(): """ Creates a deployable Shell which can be distributed to a production environment """ PackCommandExecutor().pack() DistCommandExecutor().dist()
def install(): """ Installs the shell package into CloudShell """ PackCommandExecutor().pack() InstallCommandExecutor().install()
def pack(): """ Creates a shell package """ PackCommandExecutor().pack()
def generate(): """ Generates Python driver data model to be used in driver code """ PackCommandExecutor().pack() GenerateCommandExecutor().generate()
def pack(): """ Pack the shell package. """ PackCommandExecutor().pack()