Пример #1
0
 def test__releases_in_range_first(self):
     """Test getting first releases in range."""
     self._uri({
         'releases.json': gen_releases([(MAJOR, 1, 0)]),
     })
     start = U.UCS_Version((MAJOR, 0, 0))
     end = U.UCS_Version((MAJOR, 1, 0))
     versions = self.u._releases_in_range(start, end)
     self.assertEqual([end], versions)
 def test__releases_in_range_first(self):
     """Test getting first releases in range."""
     self._uri({
         '%d.%d/maintained/%d.%d-%d/' % (MAJOR, 1, MAJOR, 1, 0): '',
     })
     start = U.UCS_Version((MAJOR, 0, 0))
     end = U.UCS_Version((MAJOR, 1, 0))
     versions = self.u._releases_in_range(start, end)
     self.assertEqual([end], versions)
 def test_get_component_repositories_ARCH_MULTI(self):
     """
     Test component errata repositories with architecture sub directories.
     onyl last errata is ierated, only first there.
     """
     self._ucr({
         'repository/online/component/a':
         'yes',
         'repository/online/component/a/%d.%d/erratalevel' % (MAJOR, MINOR):
         '1',
         'repository/online/component/a/%d.%d/erratalevel' % (MAJOR, MINOR + 1):
         '1',
     })
     self._uri({
         '%d.%d/maintained/component/a/%s/Packages.gz' % (MAJOR, MINOR, 'all'):
         DATA,
         '%d.%d/maintained/component/a/%s/Packages.gz' % (MAJOR, MINOR, ARCH):
         DATA,
         '%d.%d/maintained/component/a-errata1/%s/Packages.gz' % (MAJOR, MINOR, 'all'):
         DATA,
         '%d.%d/maintained/component/a-errata1/%s/Packages.gz' % (MAJOR, MINOR, ARCH):
         DATA,
         '%d.%d/maintained/component/a/%s/Packages.gz' % (MAJOR, MINOR + 1, 'all'):
         DATA,
         '%d.%d/maintained/component/a/%s/Packages.gz' % (MAJOR, MINOR + 1, ARCH):
         DATA,
         '%d.%d/maintained/component/a-errata1/%s/Packages.gz' % (MAJOR, MINOR + 1, 'all'):
         DATA,
         '%d.%d/maintained/component/a-errata1/%s/Packages.gz' % (MAJOR, MINOR + 1, ARCH):
         DATA,
         '%d.%d/maintained/component/a-errata2/%s/Packages.gz' % (MAJOR, MINOR + 1, 'all'):
         DATA,
         '%d.%d/maintained/component/a-errata2/%s/Packages.gz' % (MAJOR, MINOR + 1, ARCH):
         DATA,
     })
     v1 = U.UCS_Version((MAJOR, MINOR, 0))
     v2 = U.UCS_Version((MAJOR, MINOR + 1, 0))
     r = self.u.get_component_repositories(component='a', versions=(v1, v2))
     self.assertEqual(
         set((
             'deb file:///mock/%d.%d/maintained/component/ a/%s/' %
             (MAJOR, MINOR, 'all'),
             'deb file:///mock/%d.%d/maintained/component/ a/%s/' %
             (MAJOR, MINOR, ARCH),
             'deb file:///mock/%d.%d/maintained/component/ a/%s/' %
             (MAJOR, MINOR + 1, 'all'),
             'deb file:///mock/%d.%d/maintained/component/ a/%s/' %
             (MAJOR, MINOR + 1, ARCH),
             'deb file:///mock/%d.%d/maintained/component/ a-errata1/%s/' %
             (MAJOR, MINOR + 1, 'all'),
             'deb file:///mock/%d.%d/maintained/component/ a-errata1/%s/' %
             (MAJOR, MINOR + 1, ARCH),
         )), set(r))
 def test_end(self):
     """Test end version."""
     ver = U.UCS_Version((MAJOR, MINOR, PATCH))
     result = self.m.list_local_repositories(end=ver)
     self.assertEqual(len(result), 1)
     self.assertDeepEqual(result,
                          [_ for _ in self.repos if _[1] <= ver and _[2]])
 def test_start(self):
     """Test start version."""
     ver = U.UCS_Version((MAJOR, MINOR + 1, PATCH))
     result = self.m.list_local_repositories(start=ver)
     self.assertEqual(len(result), 2)
     self.assertDeepEqual(result,
                          [_ for _ in self.repos if _[1] >= ver and _[2]])
Пример #6
0
 def test__iterate_release(self):
     """Test iterating releases."""
     start = U.UCS_Version((3, 0, 0))
     end = U.UCS_Version((4, 4, 1))
     ver = U.UCSRepoPool5()
     it = self.u._iterate_release(ver, start, end)
     self.assertEqual(next(it).mmp, (3, 0, 0))
     self.assertEqual(it.send(True).mmp, (4, 0, 0))
     self.assertEqual(it.send(True).mmp, (4, 1, 0))
     self.assertEqual(it.send(True).mmp, (4, 2, 0))
     self.assertEqual(it.send(True).mmp, (4, 3, 0))
     self.assertEqual(it.send(False).mmp, (4, 3, 1))
     self.assertEqual(it.send(True).mmp, (4, 4, 0))
     self.assertEqual(it.send(False).mmp, (4, 4, 1))
     with self.assertRaises(StopIteration):
         self.assertEqual(it.next(), (4, 4, 1))
 def test_get_next_version_MAJOR99(self):
     """Test next major version after 99."""
     self._uri({
         '%d.%d/maintained/%d.%d-%d/' % (100, 0, 100, 0, 0): '',
     })
     ver = self.u.get_next_version(version=U.UCS_Version((99, MINOR,
                                                          PATCH)))
     self.assertEqual(None, ver)
Пример #8
0
 def test_get_next_version_MINOR99(self):
     """Test next minor version after 99."""
     self._uri({
         'releases.json':
         gen_releases([(MAJOR + 1, 0, 0), (MAJOR, 100, 0)])
     })
     ver = self.u.get_next_version(version=U.UCS_Version((MAJOR, 99, 0)))
     self.assertEqual('%d.%d-%d' % (MAJOR + 1, 0, 0), ver)
Пример #9
0
 def test__releases_in_range_current(self):
     """Test getting releases in range."""
     self._uri({
         'releases.json': gen_releases([(MAJOR, MINOR, PATCH)]),
     })
     ver = U.UCS_Version((MAJOR, MINOR, PATCH))
     versions = self.u._releases_in_range()
     self.assertEqual([ver], versions)
Пример #10
0
 def test__get_component_version_full(self):
     """Test getting component versions in range from MAJOR.MINOR-PATCH."""
     self._ucr({
         'repository/online/component/a/version':
         '%d.%d-%d' % (MAJOR, MINOR, PATCH)
     })
     ver = self.u._get_component_versions('a', None, None)
     self.assertEqual(set((U.UCS_Version((MAJOR, MINOR, PATCH)), )), ver)
 def test__releases_in_range_current(self):
     """Test getting releases in range."""
     self._uri({
         '%d.%d/maintained/%d.%d-%d/' % (MAJOR, MINOR, MAJOR, MINOR, 0):
         '',
     })
     ver = U.UCS_Version((MAJOR, MINOR, 0))
     versions = self.u._releases_in_range()
     self.assertEqual([ver], versions)
Пример #12
0
 def test_get_next_version_PATCH(self):
     """Test next patch version."""
     self._uri({
         'releases.json':
         gen_releases([(MAJOR, MINOR, PATCH), (MAJOR, MINOR, PATCH + 1)])
     })
     ver = self.u.get_next_version(version=U.UCS_Version((MAJOR, MINOR,
                                                          PATCH)))
     self.assertEqual('%d.%d-%d' % (MAJOR, MINOR, PATCH + 1), ver)
 def test_get_next_version_MAJOR(self):
     """Test next major version."""
     self._uri({
         '%d.%d/maintained/%d.%d-%d/' % (MAJOR + 1, 0, MAJOR + 1, 0, 0):
         '',
     })
     ver = self.u.get_next_version(version=U.UCS_Version((MAJOR, MINOR,
                                                          PATCH)))
     self.assertEqual('%d.%d-%d' % (MAJOR + 1, 0, 0), ver)
 def test_get_next_version_PATCH(self):
     """Test next patch version."""
     self._uri({
         '%d.%d/maintained/%d.%d-%d/' % (MAJOR, MINOR, MAJOR, MINOR, PATCH + 1):
         '',
     })
     ver = self.u.get_next_version(version=U.UCS_Version((MAJOR, MINOR,
                                                          PATCH)))
     self.assertEqual('%d.%d-%d' % (MAJOR, MINOR, PATCH + 1), ver)
 def test__get_component_version_empty(self):
     """Test getting component empty versions in range from MAJOR.MINOR-PATCH."""
     self._ucr({'repository/online/component/a/version': ''})
     self._uri({
         '%d.%d/maintained/%d.%d-%d/' % (MAJOR, MINOR, MAJOR, MINOR, PATCH):
         '',
     })
     ver = U.UCS_Version((MAJOR, MINOR, 0))  # comonent.erratalevel!
     comp_ver = self.u._get_component_versions('a', start=ver, end=ver)
     self.assertEqual(set((ver, )), comp_ver)
 def test_get_next_version_MINOR99(self):
     """Test next minor version after 99."""
     self._uri({
         '%d.%d/maintained/%d.%d-%d/' % (MAJOR, 100, MAJOR, 100, 0):
         '',
         '%d.%d/maintained/%d.%d-%d/' % (MAJOR + 1, 0, MAJOR + 1, 0, 0):
         '',
     })
     ver = self.u.get_next_version(version=U.UCS_Version((MAJOR, 99, 0)))
     self.assertEqual('%d.%d-%d' % (MAJOR + 1, 0, 0), ver)
Пример #17
0
        def structs():
            """Mockups for called scripts."""
            server = MockUCSHttpServer('server')
            struct_r = U.UCSRepoPool5(major=MAJOR,
                                      minor=MINOR,
                                      patchlevel=PATCH)
            preup_r = struct_r.path('preup.sh')
            postup_r = struct_r.path('postup.sh')
            struct_c = U.UCSRepoPool(major=MAJOR,
                                     minor=MINOR,
                                     part='%s/component' % (PART, ),
                                     patch='c',
                                     arch=ARCH)
            preup_c = struct_c.path('preup.sh')
            postup_c = struct_c.path('postup.sh')

            yield (server, struct_r, 'preup', preup_r, 'r_pre')
            yield (server, struct_r, 'postup', postup_r, 'r_post')
            yield (server, struct_c, 'preup', preup_c, 'c_pre')
            yield (server, struct_c, 'postup', postup_c, 'c_post')
 def setUp(self):
     """Create Mirror mockup."""
     self.base_dir = mkdtemp()
     MockConfigRegistry._EXTRA = {
         'repository/mirror/basepath': self.base_dir,
     }
     self._uri({
         '': '',
         '/': '',
         'univention-repository/': '',
     })
     self.m = M.UniventionMirror()
     repos = (
         (U.UCS_Version((MAJOR, MINOR, PATCH)), False),
         (U.UCS_Version((MAJOR, MINOR, PATCH)), True),
         (U.UCS_Version((MAJOR, MINOR, PATCH + 1)), False),
         (U.UCS_Version((MAJOR, MINOR, PATCH + 1)), True),
         (U.UCS_Version((MAJOR, MINOR + 1, PATCH)), True),
         (U.UCS_Version((MAJOR, MINOR + 1, PATCH + 1)), True),
     )
     self.repos = []
     for ver, maintained in repos:
         major_minor = U.UCS_Version.FORMAT % ver
         maint_unmain = maintained and 'maintained' or 'unmaintained'
         major_minor_patch = U.UCS_Version.FULLFORMAT % ver
         dirname = os.path.join(self.base_dir, 'mirror', major_minor,
                                maint_unmain, major_minor_patch)
         M.makedirs(dirname)
         self.repos.append((dirname, ver, maintained))
Пример #19
0
    def test_get_sh_files_bug27149(self):
        """Test preup.sh / postup.sh download for non-architecture component."""
        server = MockUCSHttpServer('server')
        struct = U.UCSRepoPoolNoArch(major=MAJOR,
                                     minor=MINOR,
                                     part='%s/component' % (PART, ),
                                     patch='a')
        preup_path = struct.path('preup.sh')
        server.mock_add(preup_path, '#!preup_content')
        postup_path = struct.path('postup.sh')
        server.mock_add(postup_path, '#!postup_content')
        repo = ((server, struct), )

        gen = U.UniventionUpdater.get_sh_files(repo)

        self.assertEqual(
            (server, struct, 'preup', preup_path, '#!preup_content'),
            gen.next())
        self.assertEqual(
            (server, struct, 'postup', postup_path, '#!postup_content'),
            gen.next())
        self.assertRaises(StopIteration, gen.next)
Пример #20
0
    def test_get_sh_files(self):
        """Test preup.sh / postup.sh download."""
        server = MockUCSHttpServer('server')
        struct = U.UCSRepoPool5(major=MAJOR,
                                minor=MINOR,
                                part=PART,
                                patchlevel=PATCH,
                                arch=ARCH)
        preup_path = struct.path('preup.sh')
        server.mock_add(preup_path, '#!preup_content')
        postup_path = struct.path('postup.sh')
        server.mock_add(postup_path, '#!postup_content')
        repo = ((server, struct), )

        gen = U.UniventionUpdater.get_sh_files(repo)

        self.assertEqual(
            (server, struct, 'preup', preup_path, '#!preup_content'),
            gen.next())
        self.assertEqual(
            (server, struct, 'postup', postup_path, '#!postup_content'),
            gen.next())
        self.assertRaises(StopIteration, gen.next)
Пример #21
0
 def test_get_next_version(self):
     """Test no next version."""
     ver = self.u.get_next_version(version=U.UCS_Version((MAJOR, MINOR,
                                                          PATCH)))
     self.assertEqual(None, ver)
Пример #22
0
 def setUp(self):
     """Create Updater mockup."""
     self.u = U.UniventionUpdater(check_access=False)
     self.u.architectures = [ARCH]
Пример #23
0
 def test_current_version(self):
     """Test current version property."""
     ver = self.u.current_version
     self.assertTrue(isinstance(ver, U.UCS_Version))
     self.assertEqual(U.UCS_Version((3, 0, 1)), ver)
Пример #24
0
 def test_get_next_version_MAJOR99(self):
     """Test next major version after 99."""
     self._uri({'releases.json': gen_releases([(99, 0, 0), (100, 0, 0)])})
     ver = self.u.get_next_version(version=U.UCS_Version((99, MINOR,
                                                          PATCH)))
     self.assertEqual(None, ver)