File: fixtures.py

package info (click to toggle)
python-b2sdk 2.8.0-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 3,020 kB
  • sloc: python: 30,902; sh: 13; makefile: 8
file content (114 lines) | stat: -rw-r--r-- 3,142 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
######################################################################
#
# File: test/unit/account_info/fixtures.py
#
# Copyright 2021 Backblaze Inc. All Rights Reserved.
#
# License https://www.backblaze.com/using_b2_code.html
#
######################################################################
from __future__ import annotations

import pytest
from apiver_deps import InMemoryAccountInfo, SqliteAccountInfo
from pytest_lazy_fixtures import lf


@pytest.fixture
def account_info_default_data_schema_0():
    return dict(
        account_id='account_id',
        auth_token='account_auth',
        api_url='https://api000.backblazeb2.xyz:8180',
        download_url='https://f000.backblazeb2.xyz:8180',
        minimum_part_size=100,
        application_key='app_key',
        realm='dev',
    )


@pytest.fixture
def account_info_default_data(account_info_default_data_schema_0, apiver):
    if apiver in ['v0', 'v1']:
        return dict(
            allowed=None,
            application_key_id='application_key_id',
            s3_api_url='https://s3.us-west-000.backblazeb2.xyz:8180',
            **account_info_default_data_schema_0,
        )
    return dict(
        allowed=None,
        application_key_id='application_key_id',
        s3_api_url='https://s3.us-west-000.backblazeb2.xyz:8180',
        account_id='account_id',
        auth_token='account_auth',
        api_url='https://api000.backblazeb2.xyz:8180',
        download_url='https://f000.backblazeb2.xyz:8180',
        recommended_part_size=100,
        absolute_minimum_part_size=50,
        application_key='app_key',
        realm='dev',
    )


@pytest.fixture(scope='session')
def in_memory_account_info_factory():
    def get_account_info():
        return InMemoryAccountInfo()

    return get_account_info


@pytest.fixture
def in_memory_account_info(in_memory_account_info_factory):
    return in_memory_account_info_factory()


@pytest.fixture
def sqlite_account_info_factory(tmpdir):
    def get_account_info(file_name=None, schema_0=False):
        if file_name is None:
            file_name = str(tmpdir.join('b2_account_info'))
        if schema_0:
            last_upgrade_to_run = 0
        else:
            last_upgrade_to_run = None
        return SqliteAccountInfo(file_name, last_upgrade_to_run)

    return get_account_info


@pytest.fixture
def sqlite_account_info(sqlite_account_info_factory):
    return sqlite_account_info_factory()


@pytest.fixture(
    params=[
        lf('in_memory_account_info_factory'),
        lf('sqlite_account_info_factory'),
    ]
)
def account_info_factory(request):
    return request.param


@pytest.fixture(
    params=[
        lf('in_memory_account_info'),
        lf('sqlite_account_info'),
    ]
)
def account_info(request):
    return request.param


@pytest.fixture
def fake_account_info(mocker):
    account_info = mocker.MagicMock(name='FakeAccountInfo', spec=InMemoryAccountInfo)
    account_info.REALM_URLS = {
        'dev': 'http://api.backblazeb2.xyz:8180',
    }
    account_info.is_same_account.return_value = True
    account_info.is_same_key.return_value = True
    return account_info