Exemple #1
0
 def explicit_releases_error_on_unfound_issues(self):
     # Just a release - result will have 1.0.0, 1.0.1, and unreleased
     changelog = release_list('1.0.1')
     # No issues listed -> this clearly doesn't exist in any buckets
     changelog[1][0].append(Text("25"))
     # This should asplode
     construct_releases(changelog, make_app())
Exemple #2
0
 def un_prefixed_list_items_get_no_prefix_under_unstable_prehistory(self):
     app = make_app(unstable_prehistory=True)
     fake = list_item('', paragraph('', '', raw('', 'whatever')))
     node = self._generate('0.1.0', fake, app=app, skip_initial=True)
     # [<raw bug text>]
     eq_(len(node[0]), 1)
     assert 'Bug' not in str(node[0][0])
     assert 'whatever' in str(node[0][0])
Exemple #3
0
 def un_prefixed_list_items_get_no_prefix_under_unstable_prehistory(self):
     app = make_app(unstable_prehistory=True)
     fake = list_item("", paragraph("", "", raw("", "whatever")))
     node = self._generate("0.1.0", fake, app=app, skip_initial=True)
     # [<raw bug text>]
     assert len(node[0]) == 1
     assert "Bug" not in str(node[0][0])
     assert "whatever" in str(node[0][0])
Exemple #4
0
 def un_prefixed_list_items_get_no_prefix_under_unstable_prehistory(self):
     app = make_app(unstable_prehistory=True)
     fake = list_item('', paragraph('', '', raw('', 'whatever')))
     node = self._generate('0.1.0', fake, app=app, skip_initial=True)
     # [<raw bug text>]
     eq_(len(node[0]), 1)
     assert 'Bug' not in str(node[0][0])
     assert 'whatever' in str(node[0][0])
Exemple #5
0
 def explicit_bugfix_releases_get_removed_from_unreleased(self):
     b1 = b(1)
     b2 = b(2)
     changelog = release_list('1.0.1', b1, b2)
     # Ensure that 1.0.1 specifies bug 2
     changelog[0][0].append(Text('2'))
     rendered, _ = construct_releases(changelog, make_app())
     # 1.0.1 should have bug 2 only
     assert b2 in rendered[1]['entries']
     assert b1 not in rendered[1]['entries']
     # unreleased bug list should still get/see bug 1
     assert b1 in rendered[2]['entries']
Exemple #6
0
 def explicit_feature_release_features_are_removed_from_unreleased(self):
     f1 = f(1)
     f2 = f(2)
     changelog = release_list('1.1.0', f1, f2)
     # Ensure that 1.1.0 specifies feature 2
     changelog[0][0].append(Text("2"))
     rendered = changelog2dict(construct_releases(changelog, make_app())[0])
     # 1.1.0 should have feature 2 only
     assert f2 in rendered['1.1.0']
     assert f1 not in rendered['1.1.0']
     # unreleased feature list should still get/see feature 1
     assert f1 in rendered['unreleased_1.x_feature']
     # now-released feature 2 should not be in unreleased_feature
     assert f2 not in rendered['unreleased_1.x_feature']
Exemple #7
0
 def _test_link(self, kwargs, type_, expected):
     app = make_app(**kwargs)
     nodes = construct_nodes(construct_releases([
         release('1.0.2', app=app),
         entry(b(15, app=app)),
         release('1.0.0'),
     ], app=app))
     if type_ == 'release':
         header = nodes[0][0][0].astext()
         assert expected in header
     elif type_ == 'issue':
         link = nodes[0][1][0][0][2]
         eq_(link['refuri'], expected)
     else:
         raise Exception("Gave unknown type_ kwarg to _test_link()!")
Exemple #8
0
 def _test_link(self, kwargs, type_, expected):
     app = make_app(**kwargs)
     nodes = construct_nodes(
         construct_releases([
             release('1.0.2', app=app),
             entry(b(15, app=app)),
             release('1.0.0'),
         ],
                            app=app))
     if type_ == 'release':
         header = nodes[0][0][0].astext()
         assert expected in header
     elif type_ == 'issue':
         link = nodes[0][1][0][0][2]
         eq_(link['refuri'], expected)
     else:
         raise Exception("Gave unknown type_ kwarg to _test_link()!")
Exemple #9
0
 def releases_can_specify_issues_explicitly(self):
     # Build regular list-o-entries
     b2 = b(2)
     b3 = b(3)
     changelog = release_list('1.0.1', '1.1.1', b3, b2, self.b, '1.1.0',
                              self.f)
     # Modify 1.0.1 release to be speshul
     changelog[0][0].append(Text("2, 3"))
     rendered = construct_releases(changelog, make_app())
     # 1.0.1 includes just 2 and 3, not bug 1
     one_0_1 = rendered[3]['entries']
     one_1_1 = rendered[2]['entries']
     assert self.b not in one_0_1
     assert b2 in one_0_1
     assert b3 in one_0_1
     # 1.1.1 includes all 3 (i.e. the explicitness of 1.0.1 didn't affect
     # the 1.1 line bucket.)
     assert self.b in one_1_1
     assert b2 in one_1_1
     assert b3 in one_1_1
Exemple #10
0
 def releases_can_specify_issues_explicitly(self):
     # Build regular list-o-entries
     b2 = b(2)
     b3 = b(3)
     changelog = release_list(
         '1.0.1', '1.1.1', b3, b2, self.b, '1.1.0', self.f
     )
     # Modify 1.0.1 release to be speshul
     changelog[0][0].append(Text("2, 3"))
     rendered, _ = construct_releases(changelog, make_app())
     # 1.0.1 includes just 2 and 3, not bug 1
     one_0_1 = rendered[3]['entries']
     one_1_1 = rendered[2]['entries']
     assert self.b not in one_0_1
     assert b2 in one_0_1
     assert b3 in one_0_1
     # 1.1.1 includes all 3 (i.e. the explicitness of 1.0.1 didn't affect
     # the 1.1 line bucket.)
     assert self.b in one_1_1
     assert b2 in one_1_1
     assert b3 in one_1_1
Exemple #11
0
 def _test_link(self, kwargs, type_, expected):
     app = make_app(**kwargs)
     nodes = construct_nodes(
         construct_releases(
             [
                 release("1.0.2", app=app),
                 entry(b(15, app=app)),
                 release("1.0.0"),
             ],
             app=app,
         )[0])
     # Shorthand for "I'll do my own asserts"
     if expected is None:
         return nodes
     if type_ == "release":
         header = nodes[0][0][0].astext()
         assert expected in header
     elif type_ == "issue":
         link = nodes[0][1][0][0][2]
         assert link["refuri"] == expected
     else:
         raise Exception("Gave unknown type_ kwarg to _test_link()!")
Exemple #12
0
 def unstable_prehistory_active_means_only_one_unreleased_release(self):
     app = make_app(unstable_prehistory=True)
     entries = (b(2), f(3), '0.1.0', b(1))
     result = self._generate(*entries, app=app, raw=True, skip_initial=True)
     html = str(result[0][0][0])
     assert "Next release" in html
Exemple #13
0
 def _expect_releases(self, *args, **kwargs):
     """
     expect_releases() wrapper setting unstable_prehistory by default
     """
     kwargs['app'] = make_app(unstable_prehistory=True)
     return expect_releases(*args, **kwargs)
Exemple #14
0
 def explicit_release_list_split_works_with_unicode(self):
     changelog = release_list('1.0.1', b(17))
     changelog[0][0].append(Text(six.text_type('17')))
     # When using naive method calls, this explodes
     construct_releases(changelog, make_app())
Exemple #15
0
 def unstable_prehistory_active_means_only_one_unreleased_release(self):
     app = make_app(unstable_prehistory=True)
     entries = (b(2), f(3), "0.1.0", b(1))
     result = self._generate(*entries, app=app, raw=True, skip_initial=True)
     html = str(result[0][0][0])
     assert "Next release" in html