Esempio n. 1
0
def test_dedup():
    db = mongomock.MongoClient().image_database.images
    duplicate_finder.add(['tests'], db)
    assert db.count() == 4

    dups = duplicate_finder.find(db, match_time=False)
    assert len(dups) == 1
    dup = dups[0]

    for item in dup['items'][1:]:
        # It is still in its original place
        assert os.path.exists(item['file_name'])

    dups = duplicate_finder.find(db)
    duplicate_finder.delete_duplicates(dups, db)

    for item in dup['items'][1:]:
        # The files have been moved
        assert not os.path.exists(item['file_name'])
        assert os.path.exists(
            os.path.join('Trash', os.path.basename(item['file_name'])))

    assert db.count() == 2

    # Move files back
    shutil.move('Trash/sideways.jpg', 'tests/images/deeply/nested/image')
    shutil.move('Trash/smaller.jpg', 'tests/images/deeply/nested/image')
    os.rmdir('Trash')
Esempio n. 2
0
def test_dedup():
    db = mongomock.MongoClient().image_database.images
    duplicate_finder.add(['tests'], db)
    assert db.count() == 8

    dups = duplicate_finder.find(db, match_time=False)
    assert len(dups) == 2

    duplicate_finder.delete_duplicates(dups, db)

    dup = dups[0]

    # The first item should still be in its original place
    assert os.path.exists(dup['items'][0]['file_name'])

    # The rest of the files should be moved to the trash
    for item in dup['items'][1:]:
        assert not os.path.exists(item['file_name'])
        assert os.path.exists(
            os.path.join('Trash', os.path.basename(item['file_name'])))

    assert db.count() == 4

    # Move files back
    for dup in dups:
        for item in dup['items'][1:]:
            shutil.move(
                os.path.join('Trash', os.path.basename(item['file_name'])),
                item['file_name'])
    os.rmdir('Trash')
Esempio n. 3
0
def test_clear():
    db = mongomock.MongoClient().image_database.images

    duplicate_finder.add(['tests'], db)

    assert db.count() > 0
    duplicate_finder.clear(db)
    assert db.count() == 0
Esempio n. 4
0
def test_add():
    file_name = '{}/tests/images/u.jpg'.format(os.getcwd())
    db = mongomock.MongoClient().image_database.images

    duplicate_finder.add(['tests'], db)

    db_result = db.find_one({'_id': file_name})
    assert db_result['_id'] == file_name
    assert db_result[
        'hash'] == '4b9e705db4450db6695cba149e2b2d65c3a950e13c7e8778e1cbda081e12a7eb'
    assert db.count() > 0
Esempio n. 5
0
def test_add():
    file_name = '{}/tests/images/u.jpg'.format(os.getcwd())
    db = mongomock.MongoClient().image_database.images

    duplicate_finder.add(['tests'], db)

    db_result = db.find_one({'_id': file_name})
    assert db_result['_id'] == file_name
    assert db_result[
        'hash'] == '87d35b107818e5d7963a5d2869d4b4b6c3950a873c7ee11ed2790eba2da2b03d'
    assert db.count() > 0
Esempio n. 6
0
def test_add():
    file_name = "{}/tests/images/u.jpg".format(os.getcwd())
    db = mongomock.MongoClient().image_database.images

    duplicate_finder.add(["tests"], db)

    db_result = db.find_one({"_id": file_name})
    assert db_result["_id"] == file_name
    assert (db_result["hash"] ==
            "4b9e705db4450db6695cba149e2b2d65c3a950e13c7e8778e1cbda081e12a7eb")
    assert db.count() > 0
Esempio n. 7
0
def test_find():
    db = mongomock.MongoClient().image_database.images
    duplicate_finder.add(['tests/images/deeply/nested'], db)

    dups = duplicate_finder.find(db, match_time=False)
    assert len(dups) == 1

    dup = dups[0]
    assert dup['total'] == 2

    time_dups = duplicate_finder.find(db, match_time=True)
    assert dups == time_dups
Esempio n. 8
0
def test_find_fuzzy():
    db = mongomock.MongoClient().image_database.images
    duplicate_finder.add(['tests/images/'], db)

    dups = duplicate_finder.find_threshold(db, 0)
    assert len(dups) == 2
    assert dups[0]['total'] == 2
    assert dups[1]['total'] == 5

    dups = duplicate_finder.find_threshold(db, 10)
    assert len(dups) == 1
    assert dups[0]['total'] == 8
Esempio n. 9
0
def test_remove():
    db = mongomock.MongoClient().image_database.images

    duplicate_finder.add(["tests"], db)
    assert db.count() > 0
    duplicate_finder.remove(["test"], db)
    assert db.count() > 0

    duplicate_finder.remove(["tests"], db)
    assert db.count() == 0

    duplicate_finder.remove(["tests"], db)
    assert db.count() == 0