def test_default_character_configuration_preservation( configuration_class, testerchain, test_registry_source_manager, tmpdir): configuration_class.DEFAULT_CONFIG_ROOT = Path('/tmp') fake_address = '0xdeadbeef' network = TEMPORARY_DOMAIN expected_filename = f'{configuration_class.NAME}.{configuration_class._CONFIG_FILE_EXTENSION}' generated_filename = configuration_class.generate_filename() assert generated_filename == expected_filename expected_filepath = Path('/', 'tmp', generated_filename) if expected_filepath.exists(): expected_filepath.unlink() assert not expected_filepath.exists() if configuration_class == StakeHolderConfiguration: # special case for defaults character_config = StakeHolderConfiguration( provider_uri=testerchain.provider_uri, domain=network) elif configuration_class == UrsulaConfiguration: # special case for rest_host & dev mode # use keystore keystore = Keystore.generate(password=INSECURE_DEVELOPMENT_PASSWORD, keystore_dir=tmpdir) keystore.signing_public_key = SecretKey.random().public_key() character_config = configuration_class(checksum_address=fake_address, domain=network, rest_host=MOCK_IP_ADDRESS, keystore=keystore) else: character_config = configuration_class(checksum_address=fake_address, domain=network) generated_filepath = character_config.generate_filepath() assert generated_filepath == expected_filepath written_filepath = character_config.to_configuration_file() assert written_filepath == expected_filepath assert written_filepath.exists() try: # Read with open(character_config.filepath, 'r') as f: contents = f.read() # Restore from JSON file restored_configuration = configuration_class.from_configuration_file() assert character_config.serialize( ) == restored_configuration.serialize() # File still exists after reading assert written_filepath.exists() finally: if expected_filepath.exists(): expected_filepath.unlink()
def test_default_character_configuration_preservation( configuration_class, testerchain, test_registry_source_manager): configuration_class.DEFAULT_CONFIG_ROOT = '/tmp' fake_address = '0xdeadbeef' network = TEMPORARY_DOMAIN expected_filename = f'{configuration_class.NAME}.{configuration_class._CONFIG_FILE_EXTENSION}' generated_filename = configuration_class.generate_filename() assert generated_filename == expected_filename expected_filepath = os.path.join('/', 'tmp', generated_filename) if os.path.exists(expected_filepath): os.remove(expected_filepath) assert not os.path.exists(expected_filepath) if configuration_class == StakeHolderConfiguration: # special case for defaults character_config = StakeHolderConfiguration( provider_uri=testerchain.provider_uri, domain=network) elif configuration_class == UrsulaConfiguration: # special case for rest_host & dev mode # use keyring keyring = Mock(spec=NucypherKeyring) keyring.signing_public_key = SecretKey.random().public_key() character_config = configuration_class(checksum_address=fake_address, domain=network, rest_host=MOCK_IP_ADDRESS, keyring=keyring) else: character_config = configuration_class(checksum_address=fake_address, domain=network) generated_filepath = character_config.generate_filepath() assert generated_filepath == expected_filepath written_filepath = character_config.to_configuration_file() assert written_filepath == expected_filepath assert os.path.exists(written_filepath) try: # Read with open(character_config.filepath, 'r') as f: contents = f.read() # Restore from JSON file restored_configuration = configuration_class.from_configuration_file() assert character_config.serialize( ) == restored_configuration.serialize() # File still exists after reading assert os.path.exists(written_filepath) finally: if os.path.exists(expected_filepath): os.remove(expected_filepath)
def test_default_character_configuration_preservation( configuration_class, testerchain, test_registry_source_manager): configuration_class.DEFAULT_CONFIG_ROOT = '/tmp' fake_address = '0xdeadbeef' network = TEMPORARY_DOMAIN expected_filename = f'{configuration_class.NAME}.{configuration_class._CONFIG_FILE_EXTENSION}' generated_filename = configuration_class.generate_filename() assert generated_filename == expected_filename expected_filepath = os.path.join('/', 'tmp', generated_filename) if os.path.exists(expected_filepath): os.remove(expected_filepath) assert not os.path.exists(expected_filepath) if configuration_class == StakeHolderConfiguration: # special case for defaults character_config = StakeHolderConfiguration( provider_uri=testerchain.provider_uri, domains={network}) else: character_config = configuration_class(checksum_address=fake_address, domains={network}) generated_filepath = character_config.generate_filepath() assert generated_filepath == expected_filepath written_filepath = character_config.to_configuration_file() assert written_filepath == expected_filepath assert os.path.exists(written_filepath) try: # Read with open(character_config.filepath, 'r') as f: contents = f.read() # Restore from JSON file restored_configuration = configuration_class.from_configuration_file() assert character_config.serialize( ) == restored_configuration.serialize() # File still exists after reading assert os.path.exists(written_filepath) finally: if os.path.exists(expected_filepath): os.remove(expected_filepath)