Browse Source

Test the settings and gallery modules with pytest.

pull/17/merge
Simon 13 years ago
parent
commit
e33761ae15
  1. 94
      tests/test_gallery.py
  2. 55
      tests/test_settings.py

94
tests/test_gallery.py

@ -1,11 +1,7 @@
# -*- coding:utf-8 -*-
import os
try:
import unittest2 as unittest
except ImportError:
import unittest # NOQA
import pytest
from sigal.gallery import PathsDb, get_metadata
from sigal.settings import read_settings
@ -40,62 +36,64 @@ REF = {
}
class TestPathsDb(unittest.TestCase):
"Test the PathsDb class."
@pytest.fixture(scope='module')
def paths():
"""Read the sample config file and build the PathsDb object."""
default_conf = os.path.join(SAMPLE_DIR, 'sigal.conf.py')
settings = read_settings(default_conf)
return PathsDb(SAMPLE_DIR, settings['ext_list'])
@pytest.fixture(scope='module')
def db(paths):
paths.build()
return paths.db
def test_filelist(db):
assert set(db.keys()) == set(['paths_list', 'skipped_dir', '.', 'dir1',
'dir2', 'dir1/test1', 'dir1/test2'])
assert db['paths_list'] == ['.', 'dir1', 'dir1/test1', 'dir1/test2',
'dir2']
@classmethod
def setUp(cls):
"""Read the sample config file and build the PathsDb object."""
assert set(db['skipped_dir']) == set(['empty', 'dir1/empty'])
assert db['.']['img'] == []
assert set(db['.']['subdir']) == set(['dir1', 'dir2'])
default_conf = os.path.join(SAMPLE_DIR, 'sigal.conf.py')
settings = read_settings(default_conf)
cls.paths = PathsDb(SAMPLE_DIR, settings['ext_list'])
cls.paths.build()
cls.db = cls.paths.db
def test_filelist(self):
self.assertItemsEqual(self.db.keys(),
['paths_list', 'skipped_dir', '.', 'dir1',
'dir2', 'dir1/test1', 'dir1/test2'])
def test_title(db):
for p in REF.keys():
assert db[p]['title'] == REF[p]['title']
self.assertListEqual(self.db['paths_list'],
['.', 'dir1', 'dir1/test1', 'dir1/test2', 'dir2'])
self.assertItemsEqual(self.db['skipped_dir'], ['empty', 'dir1/empty'])
self.assertListEqual(self.db['.']['img'], [])
self.assertItemsEqual(self.db['.']['subdir'], ['dir1', 'dir2'])
def test_thumbnail(db):
for p in REF.keys():
assert db[p]['thumbnail'] == REF[p]['thumbnail']
def test_title(self):
for p in REF.keys():
self.assertEqual(self.db[p]['title'], REF[p]['title'])
def test_thumbnail(self):
for p in REF.keys():
self.assertEqual(self.db[p]['thumbnail'], REF[p]['thumbnail'])
def test_imglist(db):
for p in REF.keys():
assert set(db[p]['img']) == set(REF[p]['img'])
def test_imglist(self):
for p in REF.keys():
self.assertItemsEqual(self.db[p]['img'], REF[p]['img'])
def test_get_subdir(self):
self.assertItemsEqual(self.paths.get_subdirs('dir1'),
['dir1/test1', 'dir1/test2'])
self.assertItemsEqual(self.paths.get_subdirs('.'),
['dir1', 'dir2', 'dir1/test1', 'dir1/test2'])
def test_get_subdir(paths):
assert set(paths.get_subdirs('dir1')) == set(['dir1/test1', 'dir1/test2'])
assert set(paths.get_subdirs('.')) == set(['dir1', 'dir2', 'dir1/test1',
'dir1/test2'])
class TestMetadata(unittest.TestCase):
"Test the Gallery class."
def test_get_metadata():
"Test the get_metadata function."
def test_dir1(self):
m = get_metadata(os.path.join(SAMPLE_DIR, 'dir1'))
self.assertEqual(m['title'], REF['dir1']['title'])
self.assertEqual(m['thumbnail'], '')
m = get_metadata(os.path.join(SAMPLE_DIR, 'dir1'))
assert m['title'] == REF['dir1']['title']
assert m['thumbnail'] == ''
def test_dir2(self):
m = get_metadata(os.path.join(SAMPLE_DIR, 'dir2'))
self.assertEqual(m['title'], REF['dir2']['title'])
self.assertEqual(m['thumbnail'], REF['dir2']['thumbnail'])
m = get_metadata(os.path.join(SAMPLE_DIR, 'dir2'))
assert m['title'] == REF['dir2']['title']
assert m['thumbnail'] == REF['dir2']['thumbnail']
# class TestGallery(unittest.TestCase):

55
tests/test_settings.py

@ -1,37 +1,42 @@
# -*- coding:utf-8 -*-
import os
try:
import unittest2 as unittest
except ImportError:
import unittest # NOQA
import pytest
from sigal.settings import read_settings, get_thumb
class TestSettings(unittest.TestCase):
"Read a settings file and check that the configuration is well done."
@pytest.fixture(scope='module')
def settings():
"""Read the sample config file."""
path = os.path.abspath(os.path.dirname(__file__))
return read_settings(os.path.join(path, 'sample', 'sigal.conf.py'))
def test_read_settings(settings):
"""Test that the settings are correctly read."""
assert settings['img_size'] == (640, 480)
assert settings['thumb_size'] == (200, 150)
assert settings['thumb_suffix'] == '.tn'
def test_thumb(settings):
"""Test the get_thumb function."""
tests = [('example.jpg', 'thumbnails/example.tn.jpg'),
('test/example.jpg', 'test/thumbnails/example.tn.jpg'),
('test/t/example.jpg', 'test/t/thumbnails/example.tn.jpg')]
for src, ref in tests:
assert get_thumb(settings, src) == ref
def setUp(self):
"Read the sample config file"
self.path = os.path.abspath(os.path.dirname(__file__))
default_conf = os.path.join(self.path, 'sample', 'sigal.conf.py')
self.settings = read_settings(default_conf)
def test_sizes(self):
"Test that image sizes are correctly read"
self.assertTupleEqual(self.settings['img_size'], (640, 480))
self.assertTupleEqual(self.settings['thumb_size'], (200, 150))
def test_img_sizes(tmpdir):
"""Test that image size is swaped if needed."""
def test_settings(self):
self.assertEqual(self.settings['thumb_suffix'], '.tn')
conf = tmpdir.join('sigal.conf.py')
conf.write("""# -*- coding: utf-8 -*-
def test_thumb(self):
"""Test the get_thumb function."""
thumb_size = (150, 200)
""")
tests = [('example.jpg', 'thumbnails/example.tn.jpg'),
('test/example.jpg', 'test/thumbnails/example.tn.jpg'),
('test/t/example.jpg', 'test/t/thumbnails/example.tn.jpg')]
for src, ref in tests:
self.assertEqual(get_thumb(self.settings, src), ref)
settings = read_settings(str(conf))
assert settings['thumb_size'] == (200, 150)

Loading…
Cancel
Save