def csv2ved(**opts): _handle_input_prompt(opts) if not validate_company_cmd_line_parameter(opts['company_id']): click.secho('Invalid format for company ID parameter, aborting', color='red') sys.exit(2) gpg_recipients = vad2ved_converter.GPG_PRODUCTION_RECIPIENTS gpg_key_data_directory = vad2ved_converter.GPG_PRODUCTION_KEY_DATA_DIRECTORY if not opts['prod']: gpg_recipients = vad2ved_converter.GPG_NON_PRODUCTION_RECIPIENTS gpg_key_data_directory = vad2ved_converter.GPG_NON_PRODUCTION_KEY_DATA_DIRECTORY gpg, init_error = vad2ved_converter.init_gpg( vad2ved_converter.GPG_HOME_DIRECTORY, gpg_recipients, gpg_key_data_directory) if init_error: click.secho(init_error, color='red') sys.exit(2) jpl_file_name, lines, errors = csv2jpl_converter.convert( opts['data_file'], opts['type_file'], opts['company_id']) if errors: click.secho('Errors: ') for error in errors: for line in error: click.secho("line {line}: {error}".format(line=line, error=error[line])) sys.exit(2) else: click.secho("{} lines written".format(lines)) click.secho('Archiving ...') vad_filename, errors, jpl_bytes, vad_bytes = jpl2vad_converter.convert( jpl_file_name) if errors: click.secho('Errors occurred during compression: {}'.format(errors), color='red') sys.exit(2) click.secho('{jpl_file} archived to {vad_file}.'.format( jpl_file=jpl_file_name, vad_file=vad_filename)) click.secho( 'Original file size: {jpl_bytes} bytes.'.format(jpl_bytes=jpl_bytes)) click.secho( 'Compressed file size: {vad_bytes} bytes'.format(vad_bytes=vad_bytes)) click.secho('Encrypting ...') ved_filename, status = vad2ved_converter.encrypt(gpg, vad_filename, gpg_recipients) if ved_filename is None: click.secho(status, color='red') sys.exit(2) else: click.secho( '{vad_file} encrypted to {ved_file}, status: {status}'.format( vad_file=vad_filename, ved_file=ved_filename, status=status.status))
def test_returns_gpg_object_on_success(self, mock_keys_exist, mock_get_gpg_binary, mock_gnupg): expected_result = (mock_gnupg.return_value, "") assert vad2ved_converter.init_gpg(GPG_TEST_HOME_DIRECTORY, REQUIRED_TEST_RECIPIENTS) == expected_result
def test_returns_false_if_key_does_not_exist(self, mock_keys_exist, mock_get_gpg_binary, mock_gnupg): assert vad2ved_converter.init_gpg(GPG_TEST_HOME_DIRECTORY, REQUIRED_TEST_RECIPIENTS) == (False, "error")
def test_returns_false_on_import_keys_error(self, mock_import_keys, mock_get_gpg_binary, mock_gnupg): expected_result = (False, 'missing required public key') keys = ['file1', 'file2'] assert vad2ved_converter.init_gpg(GPG_TEST_HOME_DIRECTORY, REQUIRED_TEST_RECIPIENTS, keys) == expected_result
def test_returns_false_if_gpg_returns_error(self, mock_get_gpg_binary, mock_gnupg): assert vad2ved_converter.init_gpg(GPG_TEST_HOME_DIRECTORY, REQUIRED_TEST_RECIPIENTS) == (False, "error message")
def test_returns_false_if_gpg_is_not_running(self, mock_get_gpg_binary): expected_result = (False, 'gpg binary not found, it might not be running on the machine') assert vad2ved_converter.init_gpg(GPG_TEST_HOME_DIRECTORY, REQUIRED_TEST_RECIPIENTS) == expected_result