~sil2100/cupstream2distro/dont_multi_merge

« back to all changes in this revision

Viewing changes to tests/unit/test_script_watch_ppa.py

  • Committer: Tarmac
  • Author(s): Robert Bruce Park
  • Date: 2014-11-28 10:35:22 UTC
  • mfrom: (845.1.2 fix-supported-arches)
  • Revision ID: tarmac-20141128103522-xv86ck4zo83y5447
Stop hard-coding arches to ignore. Fixes: https://bugs.launchpad.net/bugs/1396998.

Approved by ♫ Robert Bruce Park ♫, PS Jenkins bot.

Show diffs side-by-side

added added

removed removed

Lines of Context:
40
40
        return self._builds.pop()
41
41
 
42
42
 
 
43
class distro_arch_series:
 
44
    def __init__(self):
 
45
        self._arches = ['i386', 'amd64', 'powerpc']
 
46
 
 
47
    @property
 
48
    def architecture_tag(self):
 
49
        return self._arches.pop()
 
50
 
 
51
 
 
52
class BinaryFake:
 
53
    def __init__(self):
 
54
        self.distro_arch_series = distro_arch_series()
 
55
 
 
56
 
43
57
class WatchPPATestCase(CITrainScriptTestCase):
44
58
    scriptname = 'watch_ppa.py'
45
59
 
55
69
 
56
70
    def test_watch_arch(self):
57
71
        """Ignore the correct arches."""
58
 
        self.assertTrue(self.script.watch_arch(BuildFake('foo')))
59
 
        self.assertTrue(self.script.watch_arch(BuildFake('i386')))
60
 
        self.assertTrue(self.script.watch_arch(BuildFake('amd64')))
61
 
        self.assertFalse(self.script.watch_arch(BuildFake('powerpc')))
62
 
        self.assertFalse(self.script.watch_arch(BuildFake('arm64')))
63
 
        self.assertFalse(self.script.watch_arch(BuildFake('ppc64el')))
 
72
        arches = ['foo', 'i386', 'amd64']
 
73
        self.assertTrue(self.script.watch_arch(arches)(BuildFake('foo')))
 
74
        self.assertTrue(self.script.watch_arch(arches)(BuildFake('i386')))
 
75
        self.assertTrue(self.script.watch_arch(arches)(BuildFake('amd64')))
 
76
        self.assertFalse(self.script.watch_arch(arches)(BuildFake('powerpc')))
 
77
        self.assertFalse(self.script.watch_arch(arches)(BuildFake('arm64')))
 
78
        self.assertFalse(self.script.watch_arch(arches)(BuildFake('ppc64el')))
 
79
 
 
80
    def test_find_supported_arches(self):
 
81
        """Ensure we care which are the right arches to watch."""
 
82
        source = Mock()
 
83
        source.getPublishedBinaries.return_value = [BinaryFake()] * 3
 
84
        dest = Mock()
 
85
        dest.getPublishedSources.return_value = [source]
 
86
        self.script.packagemanager.sort_by_date_created.return_value = [source]
 
87
        self.assertEqual(
 
88
            list(self.script.find_supported_arches(dest, 'foo')),
 
89
            ['powerpc', 'amd64', 'i386'])
 
90
        self.script.launchpadmanager.get_resource_from_token\
 
91
            .assert_called_once_with(self.script.silo_state.series)
 
92
        token = self.script.launchpadmanager.get_resource_from_token
 
93
        dest.getPublishedSources.assert_called_once_with(
 
94
            exact_match=True,
 
95
            source_name='foo',
 
96
            distro_series=token(),
 
97
            status='Published',
 
98
        )
 
99
        self.script.packagemanager.sort_by_date_created\
 
100
            .assert_called_once_with(dest.getPublishedSources())
64
101
 
65
102
    def test_find_all_uploaded(self):
66
103
        """Find everything that has been uploaded from this silo."""
279
316
            'foo': set(['1.0-0ubuntu1', '1.0~utopic-0ubuntu1']),
280
317
            'bar': set(['9000-0ubuntu1', '9000~utopic-0ubuntu1']),
281
318
        }
 
319
        self.script.find_supported_arches = Mock(return_value=['i386'])
282
320
        self.script.find_all_uploaded = Mock()
283
321
        self.script.find_all_uploaded.return_value = uploaded
284
322
        self.script.wait_for_ppa = Mock()
317
355
            'foo': set(['1.0-0ubuntu1', '1.0~utopic-0ubuntu1']),
318
356
            'bar': set(['9000-0ubuntu1', '9000~utopic-0ubuntu1']),
319
357
        }
 
358
        self.script.find_supported_arches = Mock(return_value=['i386'])
320
359
        self.script.find_all_uploaded = Mock()
321
360
        self.script.find_all_uploaded.return_value = uploaded
322
361
        self.script.wait_for_ppa = Mock()
359
398
            [BuildFake('i386', 'Successfully built')],
360
399
            [BuildFake('i386', 'Currently building')],
361
400
        ]
 
401
        self.script.find_supported_arches = Mock(return_value=['i386'])
362
402
        self.script.wait_for_ppa.return_value = set(sources)
363
403
        self.assertEqual(self.script.main(), 0)
364
404
        self.script.launchpadmanager.get_resource_from_token\