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)
def setUp(self): self.product = Product(name=self.sample['name'], origin='n') self.product.save() self.client = ChangelogClient(self.product)