예제 #1
0
def test_add():
    fm = FileSet()

    assert len(fm) == 0

    file_a = File(contents='test file a', count=1)
    fm.add('file_a', file_a)

    assert len(fm) == 1
예제 #2
0
def test_filter():
    fm = FileSet()

    fm.add('file_a', File(contents='test file a', count=1))
    fm.add('file_b', File(contents='test file b', count=1))

    for _, hfile in fm.filter().patterns('*_a'):
        hfile['count'] += 1

    assert fm['file_a']['count'] == 2
    assert fm['file_b']['count'] == 1
예제 #3
0
def test_patterns():
    patterns = ['*', 'blog/**', '*']

    fsf = FileSetFilter(FileSet())
    fsf.patterns(patterns[1])
    fsf.patterns(*patterns[1:])

    assert fsf._flatten(fsf._patterns) == set(patterns)
예제 #4
0
def test_rename():
    fm = FileSet()

    file_a = File(contents='test file a', count=1)
    fm.add('file_a', file_a)

    fm.rename('file_a', 'file_b')

    assert 'file_b' in fm
    assert 'file_a' not in fm
예제 #5
0
def test_metadata_limit():

    fs = FileSet()
    fs.add('file_a', File())
    fs.add('file_b', File(title='x'))
    fs.add('file_c', File(title='x'))

    fsf = FileSetFilter(fs)

    res = dict(fsf.metadata('title', 'x').limit(1))

    assert len(res) == 1
예제 #6
0
def test_metadata():

    fs = FileSet()
    fs.add('file_a', File())
    fs.add('file_b', File(title='x'))
    fs.add('file_c', File(title='y'))

    fsf = FileSetFilter(fs)

    res = dict(fsf.metadata('title', 'x'))

    assert len(res) == 1

    filename = res.keys()[0]

    assert filename.startswith('file_b')
예제 #7
0
def test_pattern_limit():

    fs = FileSet()
    fs.add('file_a', File())
    fs.add('test_b', File())
    fs.add('test_c', File())

    fsf = FileSetFilter(fs)

    res = dict(fsf.patterns('test_*').limit(1))

    assert len(res) == 1

    filename = res.keys()[0]

    assert filename.startswith('test_')
예제 #8
0
def test_limit(limit):

    fs = FileSet()
    fs.add('a', File())
    fs.add('b', File())
    fs.add('c', File())

    fsf = FileSetFilter(fs)

    res = list(fsf.limit(limit))

    #Limit of 0 is no limit
    if limit >= 1 and limit <= len(fs):
        assert len(res) == limit

    else:
        assert len(res) == len(fs)
예제 #9
0
def test_pattern(patterns):

    fsf = FileSetFilter(FileSet())
    fsf.patterns(*patterns)

    assert fsf._flatten(fsf._patterns) == set(patterns)
예제 #10
0
def test_getitem():
    fm = FileSet()
    file_a = File(contents='test file a', count=1)
    fm.add('file_a', file_a)

    fm['file_a'] == file_a