1611
1611
self.assertContentEqual(
1612
1612
[diff2, diff1], filtered_view2.cached_differences.batch)
1614
def test_batch_differences_packages(self):
1615
# field.package_type parameter allows to list only
1616
# blacklisted differences.
1614
def test_batch_all_packages(self):
1615
# field.package_type parameter allows to list all the
1617
1617
set_derived_series_ui_feature_flag(self)
1618
1618
derived_series, parent_series = self._createChildAndParent()
1619
blacklisted_diff = self.factory.makeDistroSeriesDifference(
1620
derived_series=derived_series,
1621
status=DistroSeriesDifferenceStatus.BLACKLISTED_CURRENT)
1623
blacklisted_view = create_initialized_view(
1619
# Create differences of all possible statuses.
1621
for status in DistroSeriesDifferenceStatus.items:
1622
diff = self.factory.makeDistroSeriesDifference(
1623
derived_series=derived_series, status=status)
1625
all_view = create_initialized_view(
1624
1626
derived_series,
1625
1627
'+localpackagediffs',
1626
query_string='field.package_type=%s' % IGNORED)
1627
unblacklisted_view = create_initialized_view(
1629
'+localpackagediffs')
1628
query_string='field.package_type=%s' % ALL)
1631
self.assertContentEqual(
1632
[blacklisted_diff], blacklisted_view.cached_differences.batch)
1633
self.assertContentEqual(
1634
[], unblacklisted_view.cached_differences.batch)
1630
self.assertContentEqual(diffs, all_view.cached_differences.batch)
1636
1632
def test_batch_blacklisted_differences_with_higher_version(self):
1637
1633
# field.package_type parameter allows to list only
2337
2333
self.assertContentEqual(
2338
2334
[missing_diff], view.cached_differences.batch)
2336
def test_uniquepackages_displays_parent(self):
2337
# For a series derived from multiple parents, the parent for each
2338
# DSD is displayed; no parent version is displayed because we're
2339
# listing packages unique to the derived series.
2340
set_derived_series_ui_feature_flag(self)
2341
derived_series, parent_series = self._createChildAndParents()
2342
missing_type = DistroSeriesDifferenceType.UNIQUE_TO_DERIVED_SERIES
2343
self.factory.makeDistroSeriesDifference(
2344
difference_type=missing_type,
2345
derived_series=derived_series,
2346
parent_series=parent_series,
2347
status=DistroSeriesDifferenceStatus.NEEDS_ATTENTION)
2348
view = create_initialized_view(
2349
derived_series, '+uniquepackages')
2351
multiple_parents_display_matcher = soupmatchers.HTMLContains(
2353
"Parent table header", 'th',
2354
text=re.compile("^\s*Parent\s")),
2355
Not(soupmatchers.Tag(
2356
"Parent version table header", 'th',
2357
text=re.compile("\s*Parent version\s*"))),
2360
attrs={'class': 'parent-name'},
2361
text=re.compile("\s*%s\s*" % parent_series.displayname)),
2363
self.assertThat(view.render(), multiple_parents_display_matcher)
2340
2365
def test_uniquepackages_differences_empty(self):
2341
2366
# The view is empty if there is no differences with type
2342
2367
# UNIQUE_TO_DERIVED_SERIES.