Example #1
0
class ChangelogClientTestCase(unittest.TestCase):

    sample = {'changelog0': sampledata('changelog0.txt'),
              'changelog1': sampledata('changelog1.txt'),
              'name': 'naaya-survey'}

    def setUp(self):
        self.product = Product(name=self.sample['name'], origin='n')
        self.product.save()
        self.client = ChangelogClient(self.product)

    def test_changelog_parser(self):
        self.client.update_changelog(self.sample['changelog0'])
        versions = Release.objects.filter(product=self.product)
        indexed = {}
        for v in versions:
            indexed[pversion(v.version)] = v
        self.assertEqual(len(versions), 3)
        self.assertEqual(set(indexed.keys()), set(['1.2.2', '1.2.5', '1.2.6']))
        self.assertEqual(indexed['1.2.6'].datev, None)
        self.assertEqual(indexed['1.2.5'].datev, date(2011, 9, 23))
        self.assertEqual(indexed['1.2.2'].changelog, """* Last version where Products.NaayaSurvey and Products.NaayaWidgets were separate packages""")

    def test_changelog_incremental_update(self):
        self.client.update_changelog(self.sample['changelog0'])
        # this throws DoesNotExist / MultipleValues exception unless 1 result
        unreleased = Release.objects.get(product=self.product, datev=None)
        unreleased.obs = 'My personal observations aka extended changelog'
        unreleased.save()

        self.client.update_changelog(self.sample['changelog1'])
        versions = Release.objects.filter(product=self.product)
        indexed = {}
        for v in versions:
            indexed[pversion(v.version)] = v
        self.assertEqual(set(indexed.keys()),
                         set(['1.2.2', '1.2.5', '1.3.0', '1.3.1', '1.3.2']))
        self.assertEqual(indexed['1.3.0'].obs,
                         'My personal observations aka extended changelog')
        self.assertEqual(indexed['1.3.0'].datev, date(2011, 9, 30))
        self.assertEqual(indexed['1.3.0'].changelog,
                         """* Another bugfix that now looks ok
* bugfix: Bugfix in RadioWidget.get_value
* feature: Administrators can now edit answers in expired surveys""")
        self.assertEqual(indexed['1.3.2'].datev, None)
Example #2
0
 def setUp(self):
     self.product = Product(name=self.sample['name'], origin='n')
     self.product.save()
     self.client = ChangelogClient(self.product)