def test_start_prompt_with_package_updates_prompt(self): _, fn = tempfile.mkstemp() self.addCleanup(os.remove, fn) pkg = Package(product='123456789') dump_package(pkg.to_template(), fn) self.repl = UHURepl(fn) self.assertEqual(self.repl.prompt, '[123456] uhu> ')
def test_can_create_repl_with_default_package(self): pkg_fn = self.create_file(b'') self.set_env_var(LOCAL_CONFIG_VAR, pkg_fn) pkg = Package(version='2.0') dump_package(pkg.to_template(), pkg_fn) repl = UHURepl() self.assertEqual(repl.package.version, '2.0')
def setUp(self): super().setUp() pkg = Package(version='1.0') pkg.objects.create(self.obj_options) dump_package(pkg.to_template(), self.pkg_fn) self.dest_pkg_fn = '/tmp/pkg-dump' self.addCleanup(self.remove_file, self.dest_pkg_fn)
def test_metadata_commands_returns_0_when_metadata_is_valid(self): pkg = Package() pkg.objects.create(self.obj_options) pkg.product = '0' * 64 pkg.version = '2.0' dump_package(pkg.to_template(), self.pkg_fn) result = self.runner.invoke(metadata_command) self.assertEqual(result.exit_code, 0)
def test_cannot_archive_package_when_package_misses_info(self): invalid_packages = [ Package(product='1'), # without version Package(version='1'), # without product UID Package(version='1', product='1'), # without objects ] output = self.create_file() os.remove(output) for pkg in invalid_packages: with self.assertRaises(ValueError): dump_package_archive(pkg, output)
def test_open_package_quits_program_if_invalid_package(self): pkg_fn = self.create_file(b'') self.set_env_var(LOCAL_CONFIG_VAR, pkg_fn) pkg = Package() template = pkg.to_template() del template['objects'] with open(pkg_fn, 'w') as fp: json.dump(template, fp) with self.assertRaises(SystemExit): with open_package() as pkg: pass
def test_can_create_package_from_dump(self): dump = { 'product': self.product, 'version': self.version, } # Supported hardware hardware_dump = {'supported-hardware': 'any'} dump.update(hardware_dump) hardware = SupportedHardwareManager(dump=hardware_dump) # Objects object_dump = { 'filename': self.obj_fn, 'mode': 'copy', 'target-type': 'device', 'target': '/dev/sda', 'target-path': '/boot', 'filesystem': 'ext4', } objects_dump = {'objects': [[object_dump], [object_dump]]} dump.update(objects_dump) objects = ObjectsManager(dump=objects_dump) pkg = Package(dump=dump) self.assertEqual(pkg.version, self.version) self.assertEqual(pkg.product, self.product) self.assertEqual(pkg.supported_hardware, hardware) self.assertEqual(pkg.objects, objects)
def test_package_as_string_when_empty(self): cwd = os.getcwd() os.chdir('tests/core/fixtures') self.addCleanup(os.chdir, cwd) expected = self.read_file('package_string_empty.txt') pkg = Package() self.assertEqual(str(pkg), expected)
def create_package(self): pkg = Package(version=self.version, product=self.product) pkg.objects.create(self.obj_options) pkg.supported_hardware.add(self.hardware) # control supported hardware hw = SupportedHardwareManager() hw.add(self.hardware) # control objects objs = ObjectsManager() objs.create(self.obj_options) return pkg, hw, objs
def test_dump_package_archive_does_not_archive_links(self): pkg = Package(version=self.version, product=self.product) expected = '{}-{}.uhupkg'.format(self.product, self.version) hlink = 'updatehub_hlink' self.addCleanup(os.remove, hlink) self.obj_options['filename'] = hlink os.symlink(self.obj_fn, hlink) pkg.objects.create(self.obj_options) slink = 'updatehub_slink' self.addCleanup(os.remove, slink) self.obj_options['filename'] = slink os.link(self.obj_fn, slink) pkg.objects.create(self.obj_options) self.addCleanup(os.remove, expected) observed = dump_package_archive(pkg) self.assertEqual(len(pkg.objects.all()), 4) self.verify_archive(observed)
def setUp(self): super().setUp() pkg = Package() dump_package(pkg.to_template(), self.pkg_fn)
def test_metadata_commands_returns_1_when_metadata_is_invalid(self): pkg = Package() dump_package(pkg.to_template(), self.pkg_fn) result = self.runner.invoke(metadata_command) self.assertEqual(result.exit_code, 1)
def test_show_command_returns_0_if_successful(self): pkg = Package() pkg.objects.create(self.obj_options) dump_package(pkg.to_template(), self.pkg_fn) result = self.runner.invoke(show_command) self.assertEqual(result.exit_code, 0)
def setUp(self): super().setUp() pkg = Package() pkg.objects.create(self.obj_options) dump_package(pkg.to_template(), self.pkg_fn)
def test_can_create_repl_with_custom_package_file(self): pkg_fn = self.create_file(b'') pkg = Package(version='2.0') dump_package(pkg.to_template(), pkg_fn) repl = UHURepl(pkg_fn) self.assertEqual(repl.package.version, '2.0')
def test_can_create_package(self): pkg = Package(version=self.version, product=self.product) self.assertEqual(pkg.version, self.version) self.assertEqual(pkg.product, self.product) self.assertEqual(pkg.objects, ObjectsManager()) self.assertEqual(pkg.supported_hardware, SupportedHardwareManager())
def test_push_sets_package_uid_when_successful(self, mock): pkg = Package() uid = pkg.push() self.assertEqual(pkg.uid, '42') self.assertEqual(uid, '42')