diff --git a/docker/Dockerfile.test b/docker/Dockerfile.test new file mode 100644 index 0000000..d7e7735 --- /dev/null +++ b/docker/Dockerfile.test @@ -0,0 +1,15 @@ +FROM lnregtest:local as lnregtest-deps +FROM lndmanage:local + +COPY --from=lnregtest-deps /opt/bin/ /root/lndmanage/test/bin/ +ENV PATH="/root/.venv/bin:/opt/bin:$PATH:/root" +ARG LNREGTEST_REF=be7f39b306829387b3e9754e84db60901fbb385e +RUN apt-get update && \ + apt-get install -y -q --no-install-recommends git && \ + pip install git+https://github.com/bitromortac/lnregtest.git@${LNREGTEST_REF} && \ + apt-get purge -y --autoremove git && \ + rm -rf /var/lib/apt/lists/* + +WORKDIR /root/lndmanage + +ENTRYPOINT [ "/root/.venv/bin/python3", "-m", "unittest","discover", "test" ] diff --git a/test/test_circle.py b/test/test_circle.py index 344e97e..1902c40 100644 --- a/test/test_circle.py +++ b/test/test_circle.py @@ -6,6 +6,12 @@ from typing import List import unittest +from test.testing_common import ( + test_graphs_paths, + SLEEP_SEC_AFTER_REBALANCING, + TestNetwork, +) + from lndmanage.lib.listings import ListChannels from lndmanage.lib.rebalance import Rebalancer from lndmanage.lib.exceptions import ( @@ -17,15 +23,7 @@ ) from lndmanage import settings -from test.testing_common import ( - test_graphs_paths, - lndmanage_home, - SLEEP_SEC_AFTER_REBALANCING, - TestNetwork, -) - import logging.config -settings.set_lndmanage_home_dir(lndmanage_home) logging.config.dictConfig(settings.logger_config) logger = logging.getLogger() logger.setLevel(logging.DEBUG) diff --git a/test/test_fee_setting.py b/test/test_fee_setting.py index a184f6f..ba2ed8d 100644 --- a/test/test_fee_setting.py +++ b/test/test_fee_setting.py @@ -2,6 +2,7 @@ import logging import sys +from test import testing_common from lndmanage.lib.fee_setting import delta_demand, delta_min, optimization_parameters logger = logging.getLogger() diff --git a/test/test_graph_definitions.py b/test/test_graph_definitions.py index 622fe6f..f109f41 100644 --- a/test/test_graph_definitions.py +++ b/test/test_graph_definitions.py @@ -1,5 +1,6 @@ from unittest import TestCase +from test import testing_common from lnregtest.lib.graph_testing import graph_test from test.graph_definitions.star_ring_4_illiquid import nodes diff --git a/test/test_ln_utilities.py b/test/test_ln_utilities.py index 13413fc..fbd622e 100644 --- a/test/test_ln_utilities.py +++ b/test/test_ln_utilities.py @@ -1,4 +1,5 @@ from unittest import TestCase +from test import testing_common from lndmanage.lib.ln_utilities import ( local_balance_to_unbalancedness, unbalancedness_to_local_balance, diff --git a/test/test_openchannels.py b/test/test_openchannels.py index f5c7c8f..d966468 100644 --- a/test/test_openchannels.py +++ b/test/test_openchannels.py @@ -4,18 +4,16 @@ import time from unittest import TestCase -from lndmanage import settings -from lndmanage.lib import openchannels - from test.testing_common import ( - lndmanage_home, test_graphs_paths, TestNetwork, ) +from lndmanage import settings +from lndmanage.lib import openchannels + import logging.config -settings.set_lndmanage_home_dir(lndmanage_home) logging.config.dictConfig(settings.logger_config) logger = logging.getLogger() logger.setLevel(logging.DEBUG) diff --git a/test/test_pathfinding.py b/test/test_pathfinding.py index 338472c..e37e957 100644 --- a/test/test_pathfinding.py +++ b/test/test_pathfinding.py @@ -6,6 +6,8 @@ import networkx as nx +from test import testing_common + from lndmanage.lib.network import Network from lndmanage.lib.rating import ChannelRater from lndmanage.lib.pathfinding import dijkstra diff --git a/test/test_psbt.py b/test/test_psbt.py index 6fe1777..98c4dcd 100644 --- a/test/test_psbt.py +++ b/test/test_psbt.py @@ -1,4 +1,5 @@ from unittest import TestCase +from test import testing_common from lndmanage.lib import psbt from binascii import unhexlify, a2b_base64 diff --git a/test/test_rating.py b/test/test_rating.py index 90123c8..45b0e94 100644 --- a/test/test_rating.py +++ b/test/test_rating.py @@ -1,5 +1,6 @@ import unittest +from test import testing_common from lndmanage.lib.rating import node_badness diff --git a/test/test_rebalance.py b/test/test_rebalance.py index 91e7199..9c57e1c 100644 --- a/test/test_rebalance.py +++ b/test/test_rebalance.py @@ -4,20 +4,18 @@ import time from typing import Optional -from lndmanage import settings -from lndmanage.lib.rebalance import Rebalancer -from lndmanage.lib.ln_utilities import local_balance_to_unbalancedness -from lndmanage.lib.exceptions import NoRebalanceCandidates - from test.testing_common import ( - lndmanage_home, test_graphs_paths, SLEEP_SEC_AFTER_REBALANCING, TestNetwork ) +from lndmanage import settings +from lndmanage.lib.rebalance import Rebalancer +from lndmanage.lib.ln_utilities import local_balance_to_unbalancedness +from lndmanage.lib.exceptions import NoRebalanceCandidates + import logging.config -settings.set_lndmanage_home_dir(lndmanage_home) logging.config.dictConfig(settings.logger_config) logger = logging.getLogger() logger.setLevel(logging.DEBUG) diff --git a/test/testing_common.py b/test/testing_common.py index bd6b1b9..b7679b6 100644 --- a/test/testing_common.py +++ b/test/testing_common.py @@ -1,16 +1,4 @@ import os -import shutil -from unittest import TestCase - -from lnregtest.lib.network import Network - -from lib.node import LndNode -from lndmanage import settings - -settings.CACHING_RETENTION_MINUTES = 0 - -# constants for testing -SLEEP_SEC_AFTER_REBALANCING = 2 # testing base folder test_dir = os.path.dirname(os.path.realpath(__file__)) @@ -22,6 +10,24 @@ # folder exists lndmanage_home = os.path.join(test_data_dir, 'lndmanage') os.makedirs(lndmanage_home, exist_ok=True) +# create empty config and set env var to not trigger error when importing settings +open(os.path.join(lndmanage_home, 'config.ini'), 'a').close() + +os.environ.setdefault('LNDMANAGE_HOME', lndmanage_home) + +import shutil +from unittest import TestCase + +from lnregtest.lib.network import Network + +from lndmanage.lib.node import LndNode +from lndmanage import settings + +settings.CACHING_RETENTION_MINUTES = 0 +settings.set_lndmanage_home_dir(lndmanage_home) + +# constants for testing +SLEEP_SEC_AFTER_REBALANCING = 2 test_graphs_paths = { 'star_ring_3_liquid': os.path.join(