update_maintainer

This commit is contained in:
Dimitri John Ledkov 2014-12-18 21:09:44 +00:00
parent a7f4fc202b
commit dae4c18c9e

View File

@ -16,9 +16,16 @@
"""Test suite for ubuntutools.update_maintainer""" """Test suite for ubuntutools.update_maintainer"""
try:
import builtins
except ImportError:
import __builtin__ import __builtin__
try:
from StringIO import StringIO
except:
from io import StringIO
import os import os
import StringIO
import sys import sys
import mock import mock
@ -210,12 +217,14 @@ class UpdateMaintainerTestCase(unittest.TestCase):
(mode == "r" and self._files[base] is None)): (mode == "r" and self._files[base] is None)):
raise IOError("No such file or directory: '%s'" % filename) raise IOError("No such file or directory: '%s'" % filename)
if mode == "w": if mode == "w":
self._files[base] = StringIO.StringIO() self._files[base] = StringIO()
self._files[base].close = lambda: None self._files[base].close = lambda: None
return self._files[base] return self._files[base]
#pylint: disable=C0103 #pylint: disable=C0103
def setUp(self): def setUp(self):
if sys.version_info[0] < 3:
self.assertRegex = self.assertRegexpMatches
m = mock.mock_open() m = mock.mock_open()
m.side_effect = self._fake_open m.side_effect = self._fake_open
patcher = mock.patch('__builtin__.open', m) patcher = mock.patch('__builtin__.open', m)
@ -225,9 +234,9 @@ class UpdateMaintainerTestCase(unittest.TestCase):
patcher = mock.patch('os.path.isfile', m) patcher = mock.patch('os.path.isfile', m)
self.addCleanup(patcher.stop) self.addCleanup(patcher.stop)
patcher.start() patcher.start()
self._files["rules"] = StringIO.StringIO(_SIMPLE_RULES) self._files["rules"] = StringIO(_SIMPLE_RULES)
Logger.stdout = StringIO.StringIO() Logger.stdout = StringIO()
Logger.stderr = StringIO.StringIO() Logger.stderr = StringIO()
def tearDown(self): def tearDown(self):
self.assertEqual(Logger.stdout.getvalue(), '') self.assertEqual(Logger.stdout.getvalue(), '')
@ -242,8 +251,8 @@ class UpdateMaintainerTestCase(unittest.TestCase):
#pylint: enable=C0103 #pylint: enable=C0103
def test_debian_package(self): def test_debian_package(self):
"""Test: Don't update Maintainer field if target is Debian.""" """Test: Don't update Maintainer field if target is Debian."""
self._files["changelog"] = StringIO.StringIO(_UNSTABLE_CHANGELOG) self._files["changelog"] = StringIO(_UNSTABLE_CHANGELOG)
self._files["control"] = StringIO.StringIO(_ABP_CONTROL) self._files["control"] = StringIO(_ABP_CONTROL)
update_maintainer(self._directory) update_maintainer(self._directory)
self.assertEqual(self._files["control"].getvalue(), _ABP_CONTROL) self.assertEqual(self._files["control"].getvalue(), _ABP_CONTROL)
@ -252,52 +261,52 @@ class UpdateMaintainerTestCase(unittest.TestCase):
The Maintainer field needs to be update even if The Maintainer field needs to be update even if
XSBC-Original-Maintainer has an @ubuntu.com address.""" XSBC-Original-Maintainer has an @ubuntu.com address."""
self._files["changelog"] = StringIO.StringIO(_LUCID_CHANGELOG) self._files["changelog"] = StringIO(_LUCID_CHANGELOG)
self._files["control"] = StringIO.StringIO(_AXIS2C_CONTROL) self._files["control"] = StringIO(_AXIS2C_CONTROL)
update_maintainer(self._directory) update_maintainer(self._directory)
self.assertEqual(self._files["control"].getvalue(), _AXIS2C_UPDATED) self.assertEqual(self._files["control"].getvalue(), _AXIS2C_UPDATED)
warnings = Logger.stderr.getvalue().strip() warnings = Logger.stderr.getvalue().strip()
Logger.stderr = StringIO.StringIO() Logger.stderr = StringIO()
self.assertEqual(len(warnings.splitlines()), 1) self.assertEqual(len(warnings.splitlines()), 1)
self.assertRegexpMatches(warnings, "Warning: Overwriting original " self.assertRegex(warnings, "Warning: Overwriting original "
"maintainer: Soren Hansen " "maintainer: Soren Hansen "
"<soren@ubuntu.com>") "<soren@ubuntu.com>")
def test_update_maintainer(self): def test_update_maintainer(self):
"""Test: Update Maintainer field.""" """Test: Update Maintainer field."""
self._files["changelog"] = StringIO.StringIO(_LUCID_CHANGELOG) self._files["changelog"] = StringIO(_LUCID_CHANGELOG)
self._files["control"] = StringIO.StringIO(_ABP_CONTROL) self._files["control"] = StringIO(_ABP_CONTROL)
update_maintainer(self._directory) update_maintainer(self._directory)
self.assertEqual(self._files["control"].getvalue(), _ABP_UPDATED) self.assertEqual(self._files["control"].getvalue(), _ABP_UPDATED)
def test_update_old_maintainer(self): def test_update_old_maintainer(self):
"""Test: Update old MOTU address.""" """Test: Update old MOTU address."""
self._files["changelog"] = StringIO.StringIO(_UNSTABLE_CHANGELOG) self._files["changelog"] = StringIO(_UNSTABLE_CHANGELOG)
self._files["control.in"] = StringIO.StringIO(_ABP_OLD_MAINTAINER) self._files["control.in"] = StringIO(_ABP_OLD_MAINTAINER)
update_maintainer(self._directory, True) update_maintainer(self._directory, True)
self.assertEqual(self._files["control.in"].getvalue(), _ABP_UPDATED) self.assertEqual(self._files["control.in"].getvalue(), _ABP_UPDATED)
def test_comments_in_control(self): def test_comments_in_control(self):
"""Test: Update Maintainer field in a control file containing """Test: Update Maintainer field in a control file containing
comments.""" comments."""
self._files["changelog"] = StringIO.StringIO(_LUCID_CHANGELOG) self._files["changelog"] = StringIO(_LUCID_CHANGELOG)
self._files["control"] = StringIO.StringIO(_SEAHORSE_PLUGINS_CONTROL) self._files["control"] = StringIO(_SEAHORSE_PLUGINS_CONTROL)
update_maintainer(self._directory) update_maintainer(self._directory)
self.assertEqual(self._files["control"].getvalue(), self.assertEqual(self._files["control"].getvalue(),
_SEAHORSE_PLUGINS_UPDATED) _SEAHORSE_PLUGINS_UPDATED)
def test_skip_smart_rules(self): def test_skip_smart_rules(self):
"""Test: Skip update when XSBC-Original in debian/rules.""" """Test: Skip update when XSBC-Original in debian/rules."""
self._files["changelog"] = StringIO.StringIO(_LUCID_CHANGELOG) self._files["changelog"] = StringIO(_LUCID_CHANGELOG)
self._files["control"] = StringIO.StringIO(_ABP_CONTROL) self._files["control"] = StringIO(_ABP_CONTROL)
self._files["rules"] = StringIO.StringIO(_COMPLEX_RULES) self._files["rules"] = StringIO(_COMPLEX_RULES)
update_maintainer(self._directory) update_maintainer(self._directory)
self.assertEqual(self._files["control"].getvalue(), _ABP_CONTROL) self.assertEqual(self._files["control"].getvalue(), _ABP_CONTROL)
def test_missing_rules(self): def test_missing_rules(self):
"""Test: Skip XSBC-Original test when debian/rules is missing.""" """Test: Skip XSBC-Original test when debian/rules is missing."""
self._files["changelog"] = StringIO.StringIO(_LUCID_CHANGELOG) self._files["changelog"] = StringIO(_LUCID_CHANGELOG)
self._files["control"] = StringIO.StringIO(_ABP_CONTROL) self._files["control"] = StringIO(_ABP_CONTROL)
self._files["rules"] = None self._files["rules"] = None
update_maintainer(self._directory) update_maintainer(self._directory)
self.assertEqual(self._files["control"].getvalue(), _ABP_UPDATED) self.assertEqual(self._files["control"].getvalue(), _ABP_UPDATED)