diff options
Diffstat (limited to 'buildbot/buildbot/test/test_package_rpm.py')
-rw-r--r-- | buildbot/buildbot/test/test_package_rpm.py | 132 |
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') |