Browse Source

Skip empty directories.

pull/87/merge
Simon Conseil 12 years ago
parent
commit
f23e87e39b
  1. 18
      sigal/gallery.py
  2. 6
      tests/test_gallery.py

18
sigal/gallery.py

@ -220,7 +220,7 @@ class Album(UnicodeMixin):
for _type, count in self.medias_count.items()))
def __len__(self):
return sum(self.medias_count.values())
return len(self.medias)
def __iter__(self):
return iter(self.medias)
@ -382,9 +382,21 @@ class Gallery(object):
albums = self.albums = {}
src_path = self.settings['source']
for path, dirs, files in os.walk(src_path, followlinks=True):
for path, dirs, files in os.walk(src_path, followlinks=True,
topdown=False):
relpath = os.path.relpath(path, src_path)
albums[relpath] = Album(relpath, self.settings, dirs, files, self)
for d in dirs[:]:
path = join(relpath, d) if relpath != '.' else d
if path not in albums.keys():
dirs.remove(d)
album = Album(relpath, self.settings, dirs, files, self)
if not album.medias and not album.albums:
self.logger.info('Skip empty album: %r', album)
else:
albums[relpath] = album
self.logger.debug('Albums:\n%r', albums.values())

6
tests/test_gallery.py

@ -157,3 +157,9 @@ def test_gallery(settings, tmpdir):
html = f.read()
assert '<title>Sigal test gallery</title>' in html
def test_empty_dirs(settings):
gal = Gallery(settings, ncpu=1)
assert 'empty' not in gal.albums
assert 'dir1/empty' not in gal.albums

Loading…
Cancel
Save