Esempio n. 1
0
 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> ')
Esempio n. 2
0
 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')
Esempio n. 3
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)
Esempio n. 4
0
 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)
Esempio n. 5
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)
Esempio n. 6
0
    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
Esempio n. 7
0
    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)
Esempio n. 8
0
 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)
Esempio n. 9
0
 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
Esempio n. 10
0
    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)
Esempio n. 11
0
 def setUp(self):
     super().setUp()
     pkg = Package()
     dump_package(pkg.to_template(), self.pkg_fn)
Esempio n. 12
0
 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)
Esempio n. 13
0
 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)
Esempio n. 14
0
 def setUp(self):
     super().setUp()
     pkg = Package()
     pkg.objects.create(self.obj_options)
     dump_package(pkg.to_template(), self.pkg_fn)
Esempio n. 15
0
 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')
Esempio n. 16
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())
Esempio n. 17
0
 def test_push_sets_package_uid_when_successful(self, mock):
     pkg = Package()
     uid = pkg.push()
     self.assertEqual(pkg.uid, '42')
     self.assertEqual(uid, '42')