190 lines
6.1 KiB
Python
190 lines
6.1 KiB
Python
# Project imports
|
|
import mock
|
|
import os
|
|
import sys
|
|
from tempfile import gettempdir
|
|
|
|
sys.path.insert(0, os.path.abspath(os.path.dirname(os.path.dirname(os.path.dirname(os.path.realpath(__file__))))))
|
|
sys.path.insert(0, os.path.abspath(os.path.dirname(os.path.dirname(os.path.realpath(__file__)))))
|
|
|
|
import helper
|
|
from elodie.config import load_config
|
|
from elodie.plugins.googlephotos.googlephotos import GooglePhotos
|
|
from elodie.media.audio import Audio
|
|
from elodie.media.photo import Photo
|
|
|
|
# Globals to simplify mocking configs
|
|
auth_file = helper.get_file('plugins/googlephotos/auth_file.json')
|
|
secrets_file = helper.get_file('plugins/googlephotos/secrets_file.json')
|
|
config_string = """
|
|
[Plugins]
|
|
plugins=GooglePhotos
|
|
|
|
[PluginGooglePhotos]
|
|
auth_file={}
|
|
secrets_file={}
|
|
"""
|
|
config_string_fmt = config_string.format(
|
|
auth_file,
|
|
secrets_file
|
|
)
|
|
|
|
setup_module = helper.setup_module
|
|
teardown_module = helper.teardown_module
|
|
|
|
@mock.patch('elodie.constants.CONFIG_FILE', '%s/config.ini-googlephotos-set-session' % gettempdir())
|
|
def test_googlephotos_set_session():
|
|
with open('%s/config.ini-googlephotos-set-session' % gettempdir(), 'w') as f:
|
|
f.write(config_string_fmt)
|
|
if hasattr(load_config, 'config'):
|
|
del load_config.config
|
|
|
|
gp = GooglePhotos()
|
|
|
|
if hasattr(load_config, 'config'):
|
|
del load_config.config
|
|
|
|
assert gp.session is None, gp.session
|
|
gp.set_session()
|
|
assert gp.session is not None, gp.session
|
|
|
|
@mock.patch('elodie.constants.CONFIG_FILE', '%s/config.ini-googlephotos-after-supported' % gettempdir())
|
|
def test_googlephotos_after_supported():
|
|
with open('%s/config.ini-googlephotos-after-supported' % gettempdir(), 'w') as f:
|
|
f.write(config_string_fmt)
|
|
if hasattr(load_config, 'config'):
|
|
del load_config.config
|
|
|
|
sample_photo = Photo(helper.get_file('plain.jpg'))
|
|
sample_metadata = sample_photo.get_metadata()
|
|
sample_metadata['original_name'] = 'foobar'
|
|
final_file_path = helper.get_file('plain.jpg')
|
|
gp = GooglePhotos()
|
|
gp.after('', '', final_file_path, sample_metadata)
|
|
db_row = gp.db.get(final_file_path)
|
|
|
|
if hasattr(load_config, 'config'):
|
|
del load_config.config
|
|
|
|
assert db_row == 'foobar', db_row
|
|
|
|
@mock.patch('elodie.constants.CONFIG_FILE', '%s/config.ini-googlephotos-after-unsupported' % gettempdir())
|
|
def test_googlephotos_after_unsupported():
|
|
with open('%s/config.ini-googlephotos-after-unsupported' % gettempdir(), 'w') as f:
|
|
f.write(config_string_fmt)
|
|
if hasattr(load_config, 'config'):
|
|
del load_config.config
|
|
|
|
final_file_path = helper.get_file('audio.m4a')
|
|
sample_photo = Audio(final_file_path)
|
|
sample_metadata = sample_photo.get_metadata()
|
|
sample_metadata['original_name'] = 'foobar'
|
|
gp = GooglePhotos()
|
|
gp.after('', '', final_file_path, sample_metadata)
|
|
db_row = gp.db.get(final_file_path)
|
|
|
|
if hasattr(load_config, 'config'):
|
|
del load_config.config
|
|
|
|
assert db_row == None, db_row
|
|
|
|
@mock.patch('elodie.constants.CONFIG_FILE', '%s/config.ini-googlephotos-upload' % gettempdir())
|
|
def test_googlephotos_upload():
|
|
with open('%s/config.ini-googlephotos-upload' % gettempdir(), 'w') as f:
|
|
f.write(config_string_fmt)
|
|
if hasattr(load_config, 'config'):
|
|
del load_config.config
|
|
|
|
gp = GooglePhotos()
|
|
|
|
if hasattr(load_config, 'config'):
|
|
del load_config.config
|
|
|
|
gp.set_session()
|
|
status = gp.upload(helper.get_file('plain.jpg'))
|
|
|
|
assert status is not None, status
|
|
|
|
@mock.patch('elodie.constants.CONFIG_FILE', '%s/config.ini-googlephotos-upload-session-fail' % gettempdir())
|
|
def test_googlephotos_upload_session_fail():
|
|
with open('%s/config.ini-googlephotos-upload-session-fail' % gettempdir(), 'w') as f:
|
|
f.write(config_string)
|
|
if hasattr(load_config, 'config'):
|
|
del load_config.config
|
|
|
|
gp = GooglePhotos()
|
|
|
|
if hasattr(load_config, 'config'):
|
|
del load_config.config
|
|
|
|
gp.set_session()
|
|
status = gp.upload(helper.get_file('plain.jpg'))
|
|
|
|
assert status is None, status
|
|
|
|
@mock.patch('elodie.constants.CONFIG_FILE', '%s/config.ini-googlephotos-upload-invalid-empty' % gettempdir())
|
|
def test_googlephotos_upload_invalid_empty():
|
|
with open('%s/config.ini-googlephotos-upload-invalid-empty' % gettempdir(), 'w') as f:
|
|
f.write(config_string_fmt)
|
|
if hasattr(load_config, 'config'):
|
|
del load_config.config
|
|
|
|
gp = GooglePhotos()
|
|
|
|
if hasattr(load_config, 'config'):
|
|
del load_config.config
|
|
|
|
gp.set_session()
|
|
status = gp.upload(helper.get_file('invalid.jpg'))
|
|
|
|
assert status is None, status
|
|
|
|
@mock.patch('elodie.constants.CONFIG_FILE', '%s/config.ini-googlephotos-upload-dne' % gettempdir())
|
|
def test_googlephotos_upload_dne():
|
|
with open('%s/config.ini-googlephotos-upload-dne' % gettempdir(), 'w') as f:
|
|
f.write(config_string_fmt)
|
|
if hasattr(load_config, 'config'):
|
|
del load_config.config
|
|
|
|
gp = GooglePhotos()
|
|
|
|
if hasattr(load_config, 'config'):
|
|
del load_config.config
|
|
|
|
gp.set_session()
|
|
status = gp.upload('/file/does/not/exist')
|
|
|
|
assert status is None, status
|
|
|
|
@mock.patch('elodie.constants.CONFIG_FILE', '%s/config.ini-googlephotos-batch' % gettempdir())
|
|
def test_googlephotos_batch():
|
|
with open('%s/config.ini-googlephotos-batch' % gettempdir(), 'w') as f:
|
|
f.write(config_string_fmt)
|
|
if hasattr(load_config, 'config'):
|
|
del load_config.config
|
|
|
|
sample_photo = Photo(helper.get_file('plain.jpg'))
|
|
sample_metadata = sample_photo.get_metadata()
|
|
sample_metadata['original_name'] = 'foobar'
|
|
final_file_path = helper.get_file('plain.jpg')
|
|
gp = GooglePhotos()
|
|
gp.after('', '', final_file_path, sample_metadata)
|
|
db_row = gp.db.get(final_file_path)
|
|
assert db_row == 'foobar', db_row
|
|
|
|
status, count = gp.batch()
|
|
db_row_after = gp.db.get(final_file_path)
|
|
assert status == True, status
|
|
assert count == 1, count
|
|
assert db_row_after is None, db_row_after
|
|
|
|
|
|
if hasattr(load_config, 'config'):
|
|
del load_config.config
|
|
|
|
|
|
gp.set_session()
|
|
status = gp.upload(helper.get_file('invalid.jpg'))
|
|
|
|
assert status is None, status
|