Exemplo n.º 1
0
    def test_notes(self):
        """
        Should split notes into new features and known issues.
        """
        new_feature_1 = Mock(**{
            'is_known_issue_for.return_value': False,
            'tag': 'Changed'
        })
        new_feature_2 = Mock(**{'is_known_issue_for.return_value': False})
        dot_fix = Mock(
            **{
                'is_known_issue_for.return_value': False,
                'tag': 'Fixed',
                'note': '42.0.1 rendering glitches'
            })
        known_issue_1 = Mock(**{'is_known_issue_for.return_value': True})
        known_issue_2 = Mock(**{'is_known_issue_for.return_value': True})

        with patch.object(models.Release, 'note_set') as note_set:
            release = models.Release()
            note_set.order_by.return_value = [
                new_feature_2, new_feature_1, dot_fix, known_issue_1,
                known_issue_2
            ]
            new_features, known_issues = release.notes()
            note_set.order_by.assert_called_with('-sort_num', 'created')

        eq_(new_features, [dot_fix, new_feature_2, new_feature_1])
        eq_(known_issues, [known_issue_1, known_issue_2])
Exemplo n.º 2
0
 def test_unicode(self):
     """
     Should equal name
     """
     release = models.Release(product='Firefox',
                              channel='Release',
                              version='12.0.1')
     eq_(unicode(release), 'Firefox 12.0.1 Release')
Exemplo n.º 3
0
 def test_is_known_issue_for(self):
     """
     Should be False if is_known_issue is True and fixed_in_release
     matches the given release.
     """
     release = Mock(spec=models.Release())
     note = models.Note(is_known_issue=True, fixed_in_release=release)
     eq_(note.is_known_issue_for(release), False)
Exemplo n.º 4
0
 def test_equivalent_release_for_product_33_1(self):
     """
     Should order by 2nd version # for 33.1 after applying other
     sorting criteria
     """
     release = models.Release(version='33.1', channel='Release')
     release._default_manager = Mock()
     mock_order_by = release._default_manager.filter.return_value.order_by
     mock_public_filter = Mock(return_value=[
         models.Release(version='33.0.3'),
         models.Release(version='33.1')
     ])
     mock_order_by.return_value = Mock(filter=mock_public_filter)
     eq_(release.equivalent_release_for_product('Firefox').version, '33.1')
     release._default_manager.filter.assert_called_once_with(
         version__startswith='33.', channel='Release', product='Firefox')
     mock_public_filter.assert_called_once_with(is_public=True)
Exemplo n.º 5
0
 def test_get_bug_search_url(self):
     """
     Should return self.bug_search_url
     """
     eq_(
         models.Release(
             bug_search_url='http://example.com').get_bug_search_url(),
         'http://example.com')
Exemplo n.º 6
0
 def test_equivalent_desktop_release_non_firefox_product(self):
     """
     Should not call equivalent_release_for_product if
     self.product does not equal 'Firefox for Android'
     """
     release = models.Release(product='Firefox OS')
     release.equivalent_release_for_product = Mock()
     eq_(release.equivalent_desktop_release(), None)
     eq_(release.equivalent_release_for_product.called, 0)
Exemplo n.º 7
0
 def test_no_equivalent_release_for_product(self):
     """
     Should return None for empty querysets
     """
     release = models.Release(version='42.0', channel='Release')
     release._default_manager = Mock()
     release._default_manager.filter.return_value.order_by.return_value = \
         models.Release.objects.none()
     eq_(release.equivalent_release_for_product('Firefox'), None)
Exemplo n.º 8
0
 def test_equivalent_release_for_product_dev(self):
     """
     Should return the release for the specified product with
     the same channel and major version
     """
     release = models.Release(version='42.0', channel='Release')
     release._default_manager = Mock()
     mock_order_by = release._default_manager.filter.return_value.order_by
     mock_order_by.return_value = [
         models.Release(version='42.0'),
         models.Release(version='42.0.1')
     ]
     eq_(
         release.equivalent_release_for_product('Firefox').version,
         '42.0.1')
     release._default_manager.filter.assert_called_once_with(
         version__startswith='42.', channel='Release', product='Firefox')
     mock_order_by.assert_called_once_with('-version')
Exemplo n.º 9
0
 def test_notes_public_only(self):
     """
     Should filter notes based on is_public attr.
     """
     with patch.object(models.Release, 'note_set') as note_set:
         release = models.Release()
         release.notes(public_only=True)
         note_set.order_by.return_value.filter.assert_called_with(
             is_public=True)
Exemplo n.º 10
0
 def test_equivalent_desktop_release(self):
     """
     Should return the equivalent_release_for_product where the
     product is 'Firefox'
     """
     release = models.Release(product='Firefox for Android')
     release.equivalent_release_for_product = Mock()
     eq_(release.equivalent_desktop_release(),
         release.equivalent_release_for_product.return_value)
     release.equivalent_release_for_product.assert_called_once_with(
         'Firefox')
Exemplo n.º 11
0
 def test_get_bug_search_url_thunderbird(self):
     """
     Should construct based on major version
     """
     eq_(
         models.Release(version='42.0',
                        product='Thunderbird').get_bug_search_url(),
         'https://bugzilla.mozilla.org/buglist.cgi?'
         'classification=Client%20Software&query_format=advanced&'
         'bug_status=RESOLVED&bug_status=VERIFIED&bug_status=CLOSED&'
         'target_milestone=Thunderbird%2042.0&product=Thunderbird'
         '&resolution=FIXED')
Exemplo n.º 12
0
 def test_get_bug_search_url_default(self):
     """
     Should construct based on major version
     """
     eq_(
         models.Release(version='42.0').get_bug_search_url(),
         'https://bugzilla.mozilla.org/buglist.cgi?'
         'j_top=OR&f1=target_milestone&o3=equals&v3=Firefox%2042&'
         'o1=equals&resolution=FIXED&o2=anyexact&query_format=advanced&'
         'f3=target_milestone&f2=cf_status_firefox42&'
         'bug_status=RESOLVED&bug_status=VERIFIED&bug_status=CLOSED&'
         'v1=mozilla42&v2=fixed%2Cverified&limit=0')
Exemplo n.º 13
0
 def test_major_version(self):
     """
     Should return the version up to, but not including, the first dot
     """
     eq_(models.Release(version='42.0').major_version(), '42')