diff --git a/bvc/__init__.py b/bvc/__init__.py index 6171d37..e04c401 100644 --- a/bvc/__init__.py +++ b/bvc/__init__.py @@ -88,7 +88,7 @@ def parse_versions(self, source): versions = config.items('versions') except NoSectionError: logger.debug("'versions' section not found in %s." % source) - return {} + return [] logger.info('- %d versions found in %s.' % (len(versions), source)) return versions diff --git a/bvc/tests.py b/bvc/tests.py index 0727509..a829024 100644 --- a/bvc/tests.py +++ b/bvc/tests.py @@ -1,5 +1,4 @@ """Tests for Buildout version checker""" -from tempfile import TemporaryFile from tempfile import NamedTemporaryFile from unittest import TestCase @@ -9,18 +8,43 @@ from bvc import VersionsChecker from bvc import VersionsConfigParser -VersionsChecker -VersionsConfigParser + +class LazyVersionsChecker(VersionsChecker): + """ + VersionsChecker who does nothing at the initialisation + excepting recording the arguments. + """ + def __init__(self, **kw): + for key, value in kw.items(): + setattr(self, key, value) class VersionsCheckerTestCase(TestCase): - pass + + def test_parse_versions(self): + config_file = NamedTemporaryFile() + config_file.write('[sections]\nKey=Value\n') + config_file.seek(0) + checker = LazyVersionsChecker() + self.assertEquals(checker.parse_versions(config_file.name), + []) + config_file.seek(0) + config_file.write('[VERSIONS]\negg=0.1\nEgg = 0.2') + config_file.seek(0) + self.assertEquals(checker.parse_versions(config_file.name), + []) + config_file.seek(0) + config_file.write('[versions]\negg=0.1\nEgg = 0.2') + config_file.seek(0) + self.assertEquals(checker.parse_versions(config_file.name), + [('egg', '0.1'), ('Egg', '0.2')]) + config_file.close() class VersionsConfigParserTestCase(TestCase): def test_parse_case_insensitive(self): - config_file = TemporaryFile() + config_file = NamedTemporaryFile() config_file.write('[Section]\nKEY=VALUE\nKey=Value\n') config_file.seek(0) config_parser = VersionsConfigParser() @@ -30,7 +54,7 @@ def test_parse_case_insensitive(self): config_file.close() def test_write_section(self): - config_file = TemporaryFile() + config_file = NamedTemporaryFile() config_parser = VersionsConfigParser() config_parser.add_section('Section') config_parser.set('Section', 'Option', 'Value') @@ -48,7 +72,7 @@ def test_write_section(self): config_file.close() def test_write_section_custom_indentation(self): - config_file = TemporaryFile() + config_file = NamedTemporaryFile() config_parser = VersionsConfigParser() config_parser.indentation = 12 config_parser.add_section('Section')