1638
1638
self.assertContentEqual(diffs, all_view.cached_differences.batch)
1640
def test_batch_wrong_param(self):
1641
# If a wrong parameter is passed then an error is displayed
1642
# and no differences are shown.
1643
set_derived_series_ui_feature_flag(self)
1644
derived_series, parent_series = self._createChildAndParent()
1645
self.factory.makeDistroSeriesDifference(
1646
derived_series=derived_series,
1647
source_package_name_str="my-src-package")
1648
view = create_initialized_view(
1650
'+localpackagediffs',
1651
query_string='field.package_type=%s' % 'unexpected')
1652
view() # Render the view.
1654
self.assertEqual('Invalid option', view.getFieldError('package_type'))
1655
self.assertContentEqual([], view.cached_differences.batch)
1640
1657
def test_batch_blacklisted_differences_with_higher_version(self):
1641
1658
# field.package_type parameter allows to list only
1642
1659
# blacklisted differences with a child's version higher than parent's.
1781
1798
dsd.derived_series, '+localpackagediffs')
1782
1799
self.assertTrue(view.hasPendingDSDUpdate(dsd))
1784
def test_hasPendingSync_returns_False_if_no_pending_sync(self):
1801
def test_pendingSync_returns_None_if_no_pending_sync(self):
1785
1802
dsd = self.factory.makeDistroSeriesDifference()
1786
1803
view = create_initialized_view(
1787
1804
dsd.derived_series, '+localpackagediffs')
1788
self.assertFalse(view.hasPendingSync(dsd))
1805
self.assertIs(None, view.pendingSync(dsd))
1790
def test_hasPendingSync_returns_True_if_pending_sync(self):
1807
def test_pendingSync_returns_not_None_if_pending_sync(self):
1791
1808
dsd = self.factory.makeDistroSeriesDifference()
1792
1809
view = create_initialized_view(
1793
1810
dsd.derived_series, '+localpackagediffs')
1794
1811
view.pending_syncs = {dsd.source_package_name.name: object()}
1795
self.assertTrue(view.hasPendingSync(dsd))
1812
self.assertIsNot(None, view.pendingSync(dsd))
1797
1814
def test_isNewerThanParent_compares_versions_not_strings(self):
1798
1815
# isNewerThanParent compares Debian-style version numbers, not
1877
1894
view = create_initialized_view(
1878
1895
dsd.derived_series, '+localpackagediffs')
1879
1896
view.hasPendingDSDUpdate = FakeMethod(result=True)
1880
view.hasPendingSync = FakeMethod(result=False)
1897
view.pendingSync = FakeMethod(result=None)
1881
1898
self.assertEqual("updating…", view.describeJobs(dsd))
1883
1900
def test_describeJobs_reports_pending_sync(self):
1885
1902
view = create_initialized_view(
1886
1903
dsd.derived_series, '+localpackagediffs')
1887
1904
view.hasPendingDSDUpdate = FakeMethod(result=False)
1888
view.hasPendingSync = FakeMethod(result=True)
1905
pcj = self.factory.makePlainPackageCopyJob()
1906
view.pending_syncs = {dsd.source_package_name.name: pcj}
1889
1907
self.assertEqual("synchronizing…", view.describeJobs(dsd))
1909
def test_describeJobs_reports_pending_queue(self):
1910
dsd = self.factory.makeDistroSeriesDifference()
1911
view = create_initialized_view(
1912
dsd.derived_series, '+localpackagediffs')
1913
view.hasPendingDSDUpdate = FakeMethod(result=False)
1914
pcj = self.factory.makePlainPackageCopyJob()
1915
pu = self.factory.makePackageUpload(distroseries=dsd.derived_series)
1916
# A copy job with an attached packageupload means the job is
1917
# waiting in the queues.
1918
removeSecurityProxy(pu).package_copy_job=pcj.id
1919
view.pending_syncs = {dsd.source_package_name.name: pcj}
1921
'waiting in <a href="%s/+queue?queue_state=%s">%s</a>…'
1922
% (canonical_url(dsd.derived_series), pu.status.value,
1924
self.assertEqual(expected, view.describeJobs(dsd))
1891
1926
def test_describeJobs_reports_pending_sync_and_update(self):
1892
1927
dsd = self.factory.makeDistroSeriesDifference()
1893
1928
view = create_initialized_view(
1894
1929
dsd.derived_series, '+localpackagediffs')
1895
1930
view.hasPendingDSDUpdate = FakeMethod(result=True)
1896
view.hasPendingSync = FakeMethod(result=True)
1931
pcj = self.factory.makePlainPackageCopyJob()
1932
self.factory.makePackageUpload(distroseries=dsd.derived_series,
1933
package_copy_job=pcj.id)
1934
view.pending_syncs = {dsd.source_package_name.name: pcj}
1897
1935
self.assertEqual(
1898
1936
"updating and synchronizing…", view.describeJobs(dsd))