Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/buildbot/buildbot/test/test_package_rpm.py
diff options
context:
space:
mode:
Diffstat (limited to 'buildbot/buildbot/test/test_package_rpm.py')
-rw-r--r--buildbot/buildbot/test/test_package_rpm.py132
1 files changed, 132 insertions, 0 deletions
diff --git a/buildbot/buildbot/test/test_package_rpm.py b/buildbot/buildbot/test/test_package_rpm.py
new file mode 100644
index 0000000..05d2841
--- /dev/null
+++ b/buildbot/buildbot/test/test_package_rpm.py
@@ -0,0 +1,132 @@
+# test step.package.rpm.*
+
+from twisted.trial import unittest
+
+from buildbot.test.runutils import SlaveCommandTestBase
+from buildbot.steps.package.rpm import RpmBuild, RpmLint, RpmSpec
+
+
+class TestRpmBuild(unittest.TestCase):
+ """
+ Tests the package.rpm.RpmBuild class.
+ """
+
+ def test_creation(self):
+ """
+ Test that instances are created with proper data.
+ """
+ rb = RpmBuild()
+ self.assertEquals(rb.specfile, None)
+ self.assertFalse(rb.autoRelease)
+ self.assertFalse(rb.vcsRevision)
+
+ rb2 = RpmBuild('aspec.spec', autoRelease=True, vcsRevision=True)
+ self.assertEquals(rb2.specfile, 'aspec.spec')
+ self.assertTrue(rb2.autoRelease)
+ self.assertTrue(rb2.vcsRevision)
+
+ def test_rpmbuild(self):
+ """
+ Verifies the rpmbuild string is what we would expect.
+ """
+ rb = RpmBuild('topdir', 'buildir', 'rpmdir', 'sourcedir',
+ 'specdir', 'dist')
+ expected_result = ('rpmbuild --define "_topdir buildir"'
+ ' --define "_builddir rpmdir" --define "_rpmdir sourcedir"'
+ ' --define "_sourcedir specdir" --define "_specdir dist"'
+ ' --define "_srcrpmdir `pwd`" --define "dist .el5"')
+ self.assertEquals(rb.rpmbuild, expected_result)
+
+
+class TestRpmLint(unittest.TestCase):
+ """
+ Tests the package.rpm.RpmLint class.
+ """
+
+ def test_command(self):
+ """
+ Test that instance command variable is created with proper data.
+ """
+ rl = RpmLint()
+ expected_result = ["/usr/bin/rpmlint", "-i", '*rpm']
+ self.assertEquals(rl.command, expected_result)
+
+
+class TestRpmSpec(unittest.TestCase):
+ """
+ Tests the package.rpm.RpmSpec class.
+ """
+
+ def test_creation(self):
+ """
+ Test that instances are created with proper data.
+ """
+ rs = RpmSpec()
+ self.assertEquals(rs.specfile, None)
+ self.assertEquals(rs.pkg_name, None)
+ self.assertEquals(rs.pkg_version, None)
+ self.assertFalse(rs.loaded)
+
+ def test_load(self):
+ try:
+ from cStringIO import StringIO
+ except ImportError, ie:
+ from StringIO import StringIO
+
+ specfile = StringIO()
+ specfile.write("""\
+Name: example
+Version: 1.0.0
+Release: 1%{?dist}
+Summary: An example spec
+
+Group: Development/Libraries
+License: GPLv2+
+URL: http://www.example.dom
+Source0: %{name}-%{version}.tar.gz
+BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
+
+BuildArch: noarch
+Requires: python >= 2.4
+BuildRequires: python-setuptools
+
+
+%description
+An example spec for an rpm.
+
+
+%prep
+%setup -q
+
+
+%build
+%{__python} setup.py build
+
+
+%install
+rm -rf $RPM_BUILD_ROOT
+%{__python} setup.py install -O1 --skip-build --root $RPM_BUILD_ROOT/
+
+
+%clean
+rm -rf $RPM_BUILD_ROOT
+
+
+%files
+%defattr(-,root,root,-)
+%doc INSTALL LICENSE AUTHORS COPYING
+# For noarch packages: sitelib
+%{python_sitelib}/*
+
+
+%changelog
+* Wed Jan 7 2009 Steve 'Ashcrow' Milner <smilner+buildbot@redhat.com> - \
+1.0.0-1
+- example""")
+ specfile.flush()
+ specfile.seek(0)
+ rs = RpmSpec(specfile)
+ rs.load()
+ self.assertTrue(rs.loaded)
+ self.assertEquals(rs.pkg_name, 'example')
+ self.assertEquals(rs.pkg_version, '1.0.0')