2017-07-08 00:51:09 -04:00
|
|
|
import os
|
|
|
|
import shutil
|
|
|
|
import sys
|
|
|
|
import tempfile
|
|
|
|
|
|
|
|
import pytest
|
|
|
|
|
|
|
|
from onionshare import common
|
|
|
|
|
|
|
|
|
|
|
|
# pytest > 2.9 only needs @pytest.fixture
|
|
|
|
@pytest.yield_fixture()
|
|
|
|
def temp_dir_1024_delete():
|
|
|
|
"""
|
|
|
|
Create a temporary directory that has a single file of a particular
|
|
|
|
size (1024 bytes). The temporary directory (and file inside) will
|
|
|
|
be deleted after fixture usage.
|
|
|
|
"""
|
|
|
|
|
|
|
|
with tempfile.TemporaryDirectory() as tmp_dir:
|
|
|
|
tmp_file, tmp_file_path = tempfile.mkstemp(dir=tmp_dir)
|
|
|
|
with open(tmp_file, 'wb') as f:
|
|
|
|
f.write(b'*' * 1024)
|
|
|
|
yield tmp_dir
|
|
|
|
|
|
|
|
|
|
|
|
# pytest > 2.9 only needs @pytest.fixture
|
|
|
|
@pytest.yield_fixture()
|
|
|
|
def temp_file_1024_delete():
|
|
|
|
"""
|
|
|
|
Create a temporary file of a particular size (1024 bytes).
|
|
|
|
The temporary file will be deleted after fixture usage.
|
|
|
|
"""
|
|
|
|
|
|
|
|
with tempfile.NamedTemporaryFile() as tmp_file:
|
|
|
|
tmp_file.write(b'*' * 1024)
|
|
|
|
tmp_file.flush()
|
|
|
|
yield tmp_file.name
|
|
|
|
|
|
|
|
|
|
|
|
# pytest > 2.9 only needs @pytest.fixture
|
|
|
|
@pytest.yield_fixture(scope='session')
|
|
|
|
def custom_zw():
|
|
|
|
zw = common.ZipWriter(
|
|
|
|
zip_filename=common.random_string(4, 6),
|
|
|
|
processed_size_callback=lambda _: 'custom_callback'
|
|
|
|
)
|
|
|
|
yield zw
|
|
|
|
zw.close()
|
|
|
|
os.remove(zw.zip_filename)
|
|
|
|
|
|
|
|
|
|
|
|
# pytest > 2.9 only needs @pytest.fixture
|
|
|
|
@pytest.yield_fixture(scope='session')
|
|
|
|
def default_zw():
|
|
|
|
zw = common.ZipWriter()
|
|
|
|
yield zw
|
|
|
|
zw.close()
|
|
|
|
tmp_dir = os.path.dirname(zw.zip_filename)
|
|
|
|
shutil.rmtree(tmp_dir)
|
|
|
|
|
|
|
|
|
|
|
|
@pytest.fixture
|
|
|
|
def platform_darwin(monkeypatch):
|
|
|
|
monkeypatch.setattr('platform.system', lambda: 'Darwin')
|
|
|
|
|
|
|
|
|
|
|
|
@pytest.fixture
|
|
|
|
def platform_linux(monkeypatch):
|
|
|
|
monkeypatch.setattr('platform.system', lambda: 'Linux')
|
|
|
|
|
|
|
|
|
|
|
|
@pytest.fixture
|
|
|
|
def platform_windows(monkeypatch):
|
|
|
|
monkeypatch.setattr('platform.system', lambda: 'Windows')
|
|
|
|
|
|
|
|
|
|
|
|
@pytest.fixture
|
|
|
|
def set_debug_false(monkeypatch):
|
|
|
|
monkeypatch.setattr('onionshare.common.debug', False)
|
|
|
|
|
|
|
|
|
|
|
|
@pytest.fixture
|
|
|
|
def set_debug_true(monkeypatch):
|
|
|
|
monkeypatch.setattr('onionshare.common.debug', True)
|
|
|
|
|
|
|
|
|
|
|
|
@pytest.fixture
|
|
|
|
def sys_argv_sys_prefix(monkeypatch):
|
|
|
|
monkeypatch.setattr('sys.argv', [sys.prefix])
|
|
|
|
|
|
|
|
|
|
|
|
@pytest.fixture
|
|
|
|
def sys_frozen(monkeypatch):
|
|
|
|
monkeypatch.setattr('sys.frozen', True, raising=False)
|
|
|
|
|
|
|
|
|
|
|
|
@pytest.fixture
|
|
|
|
def sys_meipass(monkeypatch):
|
|
|
|
monkeypatch.setattr(
|
|
|
|
'sys._MEIPASS', os.path.expanduser('~'), raising=False)
|
|
|
|
|
|
|
|
|
|
|
|
@pytest.fixture
|
|
|
|
def sys_onionshare_dev_mode(monkeypatch):
|
|
|
|
monkeypatch.setattr('sys.onionshare_dev_mode', True, raising=False)
|
|
|
|
|
|
|
|
|
|
|
|
@pytest.fixture
|
|
|
|
def time_time_100(monkeypatch):
|
|
|
|
monkeypatch.setattr('time.time', lambda: 100)
|
|
|
|
|
|
|
|
|
|
|
|
@pytest.fixture
|
|
|
|
def time_strftime(monkeypatch):
|
|
|
|
monkeypatch.setattr('time.strftime', lambda _: 'Jun 06 2013 11:05:00')
|