mirror of
https://github.com/openSUSE/osc.git
synced 2024-12-26 18:06:13 +01:00
142 lines
4.8 KiB
Python
142 lines
4.8 KiB
Python
import os
|
|
import unittest
|
|
|
|
from osc._private.package import ApiPackage
|
|
from osc._private.package import LocalPackage
|
|
from osc._private.package import PackageBase
|
|
|
|
from .common import GET
|
|
from .common import OscTestCase
|
|
|
|
|
|
FIXTURES_DIR = os.path.join(os.path.dirname(__file__), "fixtures", "packages")
|
|
|
|
|
|
class PackageBaseMock(PackageBase):
|
|
def _get_directory_node(self):
|
|
pass
|
|
|
|
def _load_from_directory_node(self, directory_node):
|
|
pass
|
|
|
|
|
|
class TestPackageBase(unittest.TestCase):
|
|
def setUp(self):
|
|
self.p1 = PackageBaseMock("http://urlA", "projA", "pkgA")
|
|
|
|
def test_str(self):
|
|
self.assertEqual(str(self.p1), "projA/pkgA")
|
|
|
|
def test_repr(self):
|
|
self.assertTrue(repr(self.p1).endswith("(projA/pkgA)"))
|
|
|
|
def test_eq(self):
|
|
# the same
|
|
p2 = PackageBaseMock(self.p1.apiurl, self.p1.project, self.p1.name)
|
|
self.assertEqual(self.p1, p2)
|
|
|
|
# package name differs
|
|
p2 = PackageBaseMock(self.p1.apiurl, self.p1.project, "pkgB")
|
|
self.assertNotEqual(self.p1, p2)
|
|
|
|
# project name differs
|
|
p2 = PackageBaseMock(self.p1.apiurl, "projB", self.p1.name)
|
|
self.assertNotEqual(self.p1, p2)
|
|
|
|
# baseurl differs
|
|
p2 = PackageBaseMock("http://urlB", self.p1.project, self.p1.name)
|
|
self.assertNotEqual(self.p1, p2)
|
|
|
|
def test_lt(self):
|
|
# the same
|
|
p2 = PackageBaseMock(self.p1.apiurl, self.p1.project, self.p1.name)
|
|
self.assertFalse(self.p1 < p2)
|
|
|
|
# package name differs
|
|
p2 = PackageBaseMock(self.p1.apiurl, self.p1.project, "pkgB")
|
|
self.assertTrue(self.p1 < p2)
|
|
|
|
# project name differs
|
|
p2 = PackageBaseMock(self.p1.apiurl, "projB", self.p1.name)
|
|
self.assertTrue(self.p1 < p2)
|
|
|
|
# baseurl differs
|
|
p2 = PackageBaseMock("http://urlB", self.p1.project, self.p1.name)
|
|
self.assertTrue(self.p1 < p2)
|
|
|
|
def test_hash(self):
|
|
p2 = PackageBaseMock(self.p1.apiurl, self.p1.project, self.p1.name)
|
|
self.assertEqual(hash(self.p1), hash(p2))
|
|
|
|
packages = set()
|
|
packages.add(self.p1)
|
|
# the second instance appears to be there because it has the same hash
|
|
# it is ok, because we consider such packages equal
|
|
self.assertIn(p2, packages)
|
|
|
|
|
|
class TestLocalPackage(OscTestCase):
|
|
def _get_fixtures_dir(self):
|
|
return FIXTURES_DIR
|
|
|
|
def test_load(self):
|
|
path = os.path.join(self.tmpdir, "osctest", "openSUSE:Tools", "osc")
|
|
p = LocalPackage(path)
|
|
|
|
self.assertEqual(p.name, "osc")
|
|
self.assertEqual(p.project, "openSUSE:Tools")
|
|
self.assertEqual(p.apiurl, "http://localhost")
|
|
self.assertEqual(p.rev, "373")
|
|
self.assertEqual(p.vrev, "339")
|
|
self.assertEqual(p.srcmd5, "30ccce6c3a1a4322e79c2935a52af18b")
|
|
|
|
self.assertEqual(p.linkinfo.project, "openSUSE:Factory")
|
|
self.assertEqual(p.linkinfo.package, "osc")
|
|
self.assertEqual(p.linkinfo.srcmd5, "1ccbcd1b0b531a37ad75b34b5a1e2e3e")
|
|
self.assertEqual(p.linkinfo.baserev, "2c3ae65909d69e0f63113ccfe0e5f3f8")
|
|
self.assertEqual(p.linkinfo.xsrcmd5, "6a31b956f9431b0644ad6cf8e845c4e5")
|
|
self.assertEqual(p.linkinfo.lsrcmd5, "30ccce6c3a1a4322e79c2935a52af18b")
|
|
|
|
self.assertEqual(len(p.files), 3)
|
|
|
|
f = p.files[0]
|
|
self.assertEqual(f.name, "osc-0.182.0.tar.gz")
|
|
self.assertEqual(f.md5, "87f040c76f3da86fd7218c972b9df1dc")
|
|
self.assertEqual(f.size, 381596)
|
|
self.assertEqual(f.mtime, 1662638726)
|
|
|
|
|
|
class TestApiPackage(OscTestCase):
|
|
def _get_fixtures_dir(self):
|
|
return FIXTURES_DIR
|
|
|
|
@GET("http://localhost/source/openSUSE:Tools/osc", file="osctest/openSUSE:Tools/osc/.osc/_files")
|
|
def test_load(self):
|
|
p = ApiPackage("http://localhost", "openSUSE:Tools", "osc")
|
|
|
|
self.assertEqual(p.name, "osc")
|
|
self.assertEqual(p.project, "openSUSE:Tools")
|
|
self.assertEqual(p.apiurl, "http://localhost")
|
|
self.assertEqual(p.rev, "373")
|
|
self.assertEqual(p.vrev, "339")
|
|
self.assertEqual(p.srcmd5, "30ccce6c3a1a4322e79c2935a52af18b")
|
|
|
|
self.assertEqual(p.linkinfo.project, "openSUSE:Factory")
|
|
self.assertEqual(p.linkinfo.package, "osc")
|
|
self.assertEqual(p.linkinfo.srcmd5, "1ccbcd1b0b531a37ad75b34b5a1e2e3e")
|
|
self.assertEqual(p.linkinfo.baserev, "2c3ae65909d69e0f63113ccfe0e5f3f8")
|
|
self.assertEqual(p.linkinfo.xsrcmd5, "6a31b956f9431b0644ad6cf8e845c4e5")
|
|
self.assertEqual(p.linkinfo.lsrcmd5, "30ccce6c3a1a4322e79c2935a52af18b")
|
|
|
|
self.assertEqual(len(p.files), 3)
|
|
|
|
f = p.files[0]
|
|
self.assertEqual(f.name, "osc-0.182.0.tar.gz")
|
|
self.assertEqual(f.md5, "87f040c76f3da86fd7218c972b9df1dc")
|
|
self.assertEqual(f.size, 381596)
|
|
self.assertEqual(f.mtime, 1662638726)
|
|
|
|
|
|
if __name__ == "__main__":
|
|
unittest.main()
|