mirror of
https://github.com/cryptoadvance/specter-desktop.git
synced 2026-08-13 12:33:29 +02:00
* introduction of url-prefixes and defaults * starting a cli for extensions * more verbose * extension-test-data * logger improvements * bugfixes and testing * adding clasification * rename spext -> specterext * distinguish isolated_client and refactoring * improved error-message * better error_management * fix tests * ext gen completion * fix endpoint issue * added .gitignore and txs * formatting * very basic callback-infra * beauty * fix tests, tidy up, follow-links * proper mocking for extgen * adding a test for plugins * fix tests + docs * error-handling for non existing extensions * extensiongen config and making config work for new style * avoid pollition * ups * kick * kick * proper renaming of spext * fix tests * ToDo remark * fix test finally * fix the fixing fixing test * documentation * revert mounting for all config see #1595 * fix tests * fix cypress-test * prevent pollution * revert address-data to fix test * added ID * bugfix for test-cypress
67 lines
2.4 KiB
Python
67 lines
2.4 KiB
Python
import logging
|
|
from pathlib import Path
|
|
from typing import List
|
|
from cryptoadvance.specter.util.reflection import (
|
|
get_subclasses_for_clazz,
|
|
get_subclasses_for_clazz_in_cwd,
|
|
get_classlist_of_type_clazz_from_modulelist,
|
|
_get_module_from_class,
|
|
get_package_dir_for_subclasses_of,
|
|
search_dirs_in_path,
|
|
)
|
|
from cryptoadvance.specter.util.specter_migrator import SpecterMigration
|
|
from cryptoadvance.specter.util.migrations.migration_0000 import SpecterMigration_0000
|
|
from cryptoadvance.specter.managers.service_manager import Service
|
|
from cryptoadvance.specter.services.swan.service import SwanService
|
|
from cryptoadvance.specter.services.bitcoinreserve.service import BitcoinReserveService
|
|
|
|
|
|
def test_get_module_from_class():
|
|
assert (
|
|
_get_module_from_class(SpecterMigration).__name__
|
|
== "cryptoadvance.specter.util.specter_migrator"
|
|
)
|
|
assert (
|
|
_get_module_from_class(Service).__name__
|
|
== "cryptoadvance.specter.services.service"
|
|
)
|
|
|
|
|
|
def test_get_package_dir_for_subclasses_of():
|
|
assert get_package_dir_for_subclasses_of(SpecterMigration).endswith(
|
|
"cryptoadvance/specter/util/migrations"
|
|
)
|
|
assert get_package_dir_for_subclasses_of(Service).endswith(
|
|
"cryptoadvance/specter/services"
|
|
)
|
|
|
|
|
|
def test_get_classlist_from_importlist(caplog):
|
|
caplog.set_level(logging.DEBUG)
|
|
modulelist = [
|
|
"cryptoadvance.specter.services.swan.service",
|
|
"cryptoadvance.specter.services.bitcoinreserve.service",
|
|
]
|
|
classlist = get_classlist_of_type_clazz_from_modulelist(Service, modulelist)
|
|
assert len(classlist) == 2 # Happy to remove that at some point
|
|
assert SwanService in classlist
|
|
assert BitcoinReserveService in classlist
|
|
|
|
|
|
def test_get_subclasses_for_clazz_in_cwd(caplog):
|
|
caplog.set_level(logging.DEBUG)
|
|
classlist: List[type] = get_subclasses_for_clazz_in_cwd(
|
|
Service, cwd="./tests/xtestdata_testextensions"
|
|
)
|
|
# damn, this is difficult to test
|
|
# assert len(classlist) == 3
|
|
|
|
|
|
def test_get_subclasses_for_class(caplog):
|
|
caplog.set_level(logging.INFO)
|
|
classlist = get_subclasses_for_clazz(SpecterMigration)
|
|
assert SpecterMigration_0000 in classlist
|
|
classlist = get_subclasses_for_clazz(Service)
|
|
assert len(classlist) == 2 # Happy to remove that at some point
|
|
assert SwanService in classlist
|
|
assert BitcoinReserveService in classlist
|