Ejemplo n.º 1
0
def test_mod_init(script: str) -> None:
    script = path.join(path.here(__file__), script)
    m = module.LuaMod(script)
    assert m.version == "1.0"
    assert m.url == "https://www.mysite.com"
    assert m.description == "Service Description"
    assert m.name == "Service Name"
    assert m.slug == "lua_webbanking_ok"
Ejemplo n.º 2
0
def test_mm(script: str) -> None:
    script = path.join(path.here(__file__), script)
    with mock.patch("time.sleep") as mockts:
        m = module.LuaMod(script)
        g = m._luart.globals()
        #
        mockts.assert_called_once_with(1)
        #
        assert g.test_product_name == "BSE"
        assert g.test_product_version == __version__
        #
        assert g.test_localizetext == "This is a Test"
        #
        assert g.test_localizenumber1 == "1"
        assert g.test_localizenumber2 == "1.1"
        assert g.test_localizenumber3 == "1.23"
        #
        assert g.test_localizedate1 == "Mar 31, 2020, 3:24:28 PM"
        assert g.test_localizedate2 == "2020.03.31 AD at 15:24:28 UTC"
        #
        assert g.test_localizeamount1 == "1"
        assert g.test_localizeamount2 == "1.1"
        assert g.test_localizeamount3 == "1.1"
        assert g.test_localizeamount4 == "€1.10"
        assert g.test_localizeamount5 == "€1.10"
        #
        assert g.test_urlencode1 == "this%20is%20a%20test"
        assert g.test_urlencode2 == "this%20is%20a%20test"
        #
        assert g.test_urldecode1 == "this is a test"
        #
        assert g.test_encoded_str1 == "74657374"
        assert g.test_decoded_str1 == "test"
        assert g.test_base64_encode1 == "dGVzdA=="
        assert g.test_base64_decode1 == "74657374"
        #
        assert (
            g.test_sha512 ==
            "401779a9f6545849e11ec969949549ae41dd8dbdd4f133e21145a1ef6c1551e1a5302e8aac7ff9cf955d98000c6e532fd9f"
            + "193b39fa17695a2e650ec132f3140")
        assert (
            g.test_sha256 ==
            "119e3f0d28cf6a92d29399d5787f90308b6b87670d8c2386ec42cb36e293b5c4")
        assert g.test_sha1 == "1e0a5da7cf8d083e5d170db4e5cd03dc5b22d3fa"
        assert g.test_md5 == "27703945b9bceacb09546d2e103ad360"
        #
        assert g.test_hmac512 == (
            "1613e1de8845bf9d652ac7023b1b499fa975c5102c25557ea3d2bca8213aa20caa823aaed9a8f5cb5e3e2c1a8cbdf55b868923"
            + "19b5d356d70e05dc1fb0fbb813")
        assert g.test_hmac384 == (
            "87cae1d0fe8fef5c3c2c0cfb9ca06d99b8a6267084308c41c73b2c2aa638b94f7c43c3ba62aeffb2cf909ccc987df13b"
        )
        assert (
            g.test_hmac256 ==
            "6e4e506a08fff48f42d4754ddebfbdaa61619ecbc3828eb2b4dda99f94875396")
        #
        assert len(str(g.test_time)) == 10  # length for timestamp
Ejemplo n.º 3
0
def test_coinbase_accounts(mocker) -> None:
    mocker.patch("bse.lua._globals.bse_time", return_value=1_590_067_388)
    mocker.patch("bse.lua._connection.Connection._request", side_effect=mc.mock_request)
    netrc = path.join(path.here(__file__), "..", "test.netrc")

    runner = CliRunner()
    result = runner.invoke(cli.main, f"--netrc {netrc} accounts coinbase")
    traceback.print_exception(*result.exc_info)
    assert result.exit_code == 0
    assert result.output == accounts
def test_coinbase_balance(mocker) -> None:
    mocker.patch("bse.lua._globals.bse_time", return_value=1_590_067_388)
    mocker.patch("bse.lua._connection.Connection._request", side_effect=mc.mock_request)
    netrc = path.join(path.here(__file__), "..", "test.netrc")

    runner = CliRunner()
    result = runner.invoke(cli.main, f"--netrc {netrc} balance coinbase")
    traceback.print_exception(*result.exc_info)
    assert result.exit_code == 1
    assert result.exception.__class__ == NotImplementedError
Ejemplo n.º 5
0
def prologue() -> str:
    script = path.join(path.here(__file__), "_prologue.lua")
    return path.readfile(script)
Ejemplo n.º 6
0
def test_default_global(script: str) -> None:
    script = path.join(path.here(__file__), script)
    m = module.LuaMod(script)
    assert m.version == __version__
    assert m.url is None
    assert m.name == m.slug
Ejemplo n.º 7
0
def test_missing_global(script: str) -> None:
    script = path.join(path.here(__file__), script)
    with pytest.raises(module.ModError):
        module.LuaMod(script)
Ejemplo n.º 8
0
# -*- coding: utf-8 -*-

import pytest  # type: ignore
from bse import module, path, __version__
from unittest import mock


@pytest.mark.parametrize("script",
                         [path.join("samples", "lua_webbanking_ok.lua")])
def test_mod_init(script: str) -> None:
    script = path.join(path.here(__file__), script)
    m = module.LuaMod(script)
    assert m.version == "1.0"
    assert m.url == "https://www.mysite.com"
    assert m.description == "Service Description"
    assert m.name == "Service Name"
    assert m.slug == "lua_webbanking_ok"


@pytest.mark.parametrize(
    "script", [path.join("samples", "lua_webbanking_no_description.lua")])
def test_missing_global(script: str) -> None:
    script = path.join(path.here(__file__), script)
    with pytest.raises(module.ModError):
        module.LuaMod(script)


@pytest.mark.parametrize("script",
                         [path.join("samples", "lua_webbanking_min.lua")])
def test_default_global(script: str) -> None:
    script = path.join(path.here(__file__), script)
Ejemplo n.º 9
0
 def __attrs_post_init__(self) -> None:
     for _p in defaults.SCRIPT_PATHS:
         for script in glob(path.join(_p, "*.lua")):
             m = module.LuaMod(script)
             self._r[m.slug] = m
Ejemplo n.º 10
0
def test_missing_netrc() -> None:
    netrc = path.join(path.here(__file__), "this_file_does_not_exist")
    cfg = config.new({defaults.ENV_NETRC: netrc})
    with pytest.raises(FileNotFoundError):
        cfg.readrc("machine")
Ejemplo n.º 11
0
def test_login() -> None:
    netrc = path.join(path.here(__file__), "test.netrc")
    cfg = config.new({defaults.ENV_NETRC: netrc})
    cred = cfg.readrc("api.coinbase.com")
    assert cred.login == "thisistheapikey"
Ejemplo n.º 12
0
# -*- coding: utf-8 -*-

from bse import path as _p

NETRC = _p.expanduser("~/.netrc")

LOG = _p.join(_p.here(__file__), "..", "bse.log")

# Environment variables

ENV_NETRC = "BSE_NETRC"

# Dict keys to mask when debugging

MASK_KEYS = ("CB-ACCESS-SIGN", "CB-ACCESS-KEY")

# Script paths

SCRIPT_PATHS = (_p.join(_p.here(__file__), "scripts"), )
Ejemplo n.º 13
0
def test_lua_tests(script: str) -> None:
    script = path.join(path.here(__file__), script)
    module.LuaMod(script)
Ejemplo n.º 14
0
# -*- coding: utf-8 -*-

import pytest  # type: ignore
from bse import module, path
from glob import glob


@pytest.mark.parametrize("script",
                         glob(
                             path.join(path.here(__file__), "luatests",
                                       "test*.lua")))
def test_lua_tests(script: str) -> None:
    script = path.join(path.here(__file__), script)
    module.LuaMod(script)
Ejemplo n.º 15
0
# -*- coding: utf-8 -*-

import attr
from bse import path
from bse.transform import Jsonable
from typing import Dict

try:
    from xml.etree import cElementTree as etree
except ImportError:
    from xml.etree import ElementTree as etree  # type: ignore

_dbpath = path.join(path.here(__file__), "iso4217.xml")
_db: Dict[str, "Currency"] = {}


@attr.s(frozen=True)
class Currency(Jsonable):
    code: str = attr.ib()
    name: str = attr.ib()
    exponent: int = attr.ib()

    @classmethod
    def bycode(cls, code: str) -> "Currency":
        if not _db:
            _updatedb()
        return _db[code]


def _updatedb() -> None:
    for _, elem in etree.iterparse(_dbpath, events=["end"]):