예제 #1
0
def test_init():
    client = BitJWSSwaggerClient.from_spec(load_file(specurl),
                                           'https://0.0.0.0:8002')
    assert 'coin' in client.swagger_spec.definitions
    assert 'user' in client.swagger_spec.definitions
    ckey = client.coin.addCoin.swagger_spec.http_client.authenticator.privkey
    assert isinstance(ckey, bitjws.PrivateKey)
예제 #2
0
def test_user_can_only_get_own_coins():
    """Tests that user cannot get other users' coins throught the server"""
    print "creating a new user"
    privkey2 = bitjws.PrivateKey()
    my_pubkey2 = privkey2.pubkey.serialize()
    my_address2 = bitjws.pubkey_to_addr(my_pubkey2)

    username2 = str(my_address2)[0:8]

    client2 = BitJWSSwaggerClient.from_url(specurl, privkey=privkey2)

    luser2 = client2.get_model('User')(username=username2)
    user2 = client2.user.addUser(user=luser2).result()
    assert user.id != user2.id

    print "creating coins for both users"
    lcoin = client.get_model('Coin')(metal='ub', mint='uranus')
    client.coin.addCoin(coin=lcoin)

    lcoin2 = client2.get_model('Coin')(metal='ub', mint='uranus')
    client2.coin.addCoin(coin=lcoin2)

    print "checking users cannot get each others's coins"
    coins = client.coin.findCoin().result()
    coins2 = client2.coin.findCoin().result()

    def get_others_coins(user, coins):
        for c in coins:
            if c.user.id != user.id:
                return True
            return False

    assert not get_others_coins(user, coins)
    assert not get_others_coins(user2, coins2)
예제 #3
0
def test_init_PrivateKey():
    privkey = bitjws.PrivateKey(bitjws.wif_to_privkey(wif))

    client = BitJWSSwaggerClient.from_spec(load_file(specurl),
                                           'https://0.0.0.0:8002',
                                           privkey=privkey)
    assert 'coin' in client.swagger_spec.definitions
    assert 'user' in client.swagger_spec.definitions
    ckey = client.coin.addCoin.swagger_spec.http_client.authenticator.privkey
    assert isinstance(ckey, bitjws.PrivateKey)
    assert bitjws.privkey_to_wif(privkey.private_key) == \
            bitjws.privkey_to_wif(ckey.private_key)
예제 #4
0
def test_register_user():
    # register a new user
    privkey2 = bitjws.PrivateKey()
    my_pubkey2 = privkey2.pubkey.serialize()
    my_address2 = bitjws.pubkey_to_addr(my_pubkey2)

    username2 = str(my_address2)[0:8]

    client2 = BitJWSSwaggerClient.from_url(specurl, privkey=privkey2)

    luser2 = client2.get_model("User")(username=username2)
    user2 = client2.user.addUser(user=luser2).result()
    assert hasattr(user2, "id")
예제 #5
0
def test_register_user():
    # register a new user
    privkey2 = bitjws.PrivateKey()
    my_pubkey2 = privkey2.pubkey.serialize()
    my_address2 = bitjws.pubkey_to_addr(my_pubkey2)

    username2 = str(my_address2)[0:8]

    client2 = BitJWSSwaggerClient.from_url(specurl, privkey=privkey2)

    luser2 = client2.get_model('User')(username=username2)
    user2 = client2.user.addUser(user=luser2).result()
    assert hasattr(user2, 'id')
예제 #6
0
def test_init_url_WIF():
    url = "http://spec.com/swagger.json"
    spec = load_file(specurl)
    httpretty.enable()
    httpretty.register_uri(httpretty.GET, url,
                           body=json.dumps(spec))

    client = BitJWSSwaggerClient.from_url(url, privkey=wif)
    assert 'coin' in client.swagger_spec.definitions
    assert 'user' in client.swagger_spec.definitions
    ckey = client.coin.addCoin.swagger_spec.http_client.authenticator.privkey
    assert isinstance(ckey, bitjws.PrivateKey)
    assert wif == bitjws.privkey_to_wif(ckey.private_key)

    httpretty.disable()
    httpretty.reset()
예제 #7
0
def test_good_call():
    url = "http://0.0.0.0:8002/coin"
    bjauth = BitJWSAuthenticator("0.0.0.0", privkey=wif)
    client = BitJWSSwaggerClient.from_spec(load_file(specurl), origin_url=url, privkey=wif)
    coin = [{"metal": "m", "mint": "n"}]

    data = bitjws.sign_serialize(bjauth.privkey, requrl="/response", iat=time.time(), data=coin)

    httpretty.enable()
    httpretty.register_uri(httpretty.GET, url, body=data, content_type="application/jose")

    resp = client.coin.findCoin().result()
    assert resp[0].metal == coin[0]["metal"]
    assert resp[0].mint == coin[0]["mint"]
    assert httpretty.last_request().headers["content-type"] == "application/jose"

    httpretty.disable()
    httpretty.reset()
예제 #8
0
import time
from bravado_bitjws.client import BitJWSSwaggerClient
from desw import CFG, ses, eng, models
from desw.plugin import internal_credit, internal_address, internal_confirm_credit

from bravado.swagger_model import load_file

host = "0.0.0.0"
url = "http://0.0.0.0:8002/"
specurl = os.path.abspath('../desw/desw/static/swagger.json')

privkey = bitjws.PrivateKey()
my_pubkey = privkey.pubkey.serialize()
my_address = bitjws.pubkey_to_addr(my_pubkey)
username = str(my_address)[0:8]
client = BitJWSSwaggerClient.from_spec(load_file(specurl), origin_url=url)
luser = client.get_model('User')(username=username)
user = client.user.addUser(user=luser).result().user

privkey2 = bitjws.PrivateKey()
my_pubkey2 = privkey2.pubkey.serialize()
my_address2 = bitjws.pubkey_to_addr(my_pubkey2)
username2 = str(my_address2)[0:8]
client2 = BitJWSSwaggerClient.from_spec(load_file(specurl), origin_url=url)
luser2 = client2.get_model('User')(username=username2)
user2 = client2.user.addUser(user=luser2).result().user


def test_addresses():
    addy = client.get_model('Address')(currency='BTC', network='Internal')
    address = client.address.createAddress(address=addy).result()
예제 #9
0
import pytest
import bitjws
from bravado_bitjws.client import BitJWSSwaggerClient

privkey = bitjws.PrivateKey()

my_pubkey = privkey.pubkey.serialize()
my_address = bitjws.pubkey_to_addr(my_pubkey)

host = "0.0.0.0"
url = "http://0.0.0.0:8002/"
specurl = "%sstatic/swagger.json" % url
username = str(my_address)[0:8]

client = BitJWSSwaggerClient.from_url(specurl, privkey=privkey)

luser = client.get_model("User")(username=username)
user = client.user.addUser(user=luser).result()


def test_register_user():
    # register a new user
    privkey2 = bitjws.PrivateKey()
    my_pubkey2 = privkey2.pubkey.serialize()
    my_address2 = bitjws.pubkey_to_addr(my_pubkey2)

    username2 = str(my_address2)[0:8]

    client2 = BitJWSSwaggerClient.from_url(specurl, privkey=privkey2)

    luser2 = client2.get_model("User")(username=username2)
예제 #10
0
import bitjws
from bravado.swagger_model import load_file
from bravado_bitjws.client import BitJWSSwaggerClient

from desw import CFG, ses, wm
from desw.plugin import internal_credit, internal_address

host = "0.0.0.0"
url = "http://0.0.0.0:8002/"
specurl = os.path.abspath('../desw/desw/static/swagger.json')

privkey = bitjws.PrivateKey()
my_pubkey = privkey.pubkey.serialize()
my_address = bitjws.pubkey_to_addr(my_pubkey)
username = str(my_address)[0:8]
client = BitJWSSwaggerClient.from_spec(load_file(specurl), origin_url=url)
luser = client.get_model('User')(username=username)
user = client.user.addUser(user=luser).result().user

privkey2 = bitjws.PrivateKey()
my_pubkey2 = privkey2.pubkey.serialize()
my_address2 = bitjws.pubkey_to_addr(my_pubkey2)
username2 = str(my_address2)[0:8]
client2 = BitJWSSwaggerClient.from_spec(load_file(specurl), origin_url=url)
luser2 = client2.get_model('User')(username=username2)
user2 = client2.user.addUser(user=luser2).result().user


def test_address():
    addy = client.get_model('Address')(currency='BTC', network='Internal')
    address = client.address.createAddress(address=addy).result()
예제 #11
0
import pytest
import bitjws
from bravado_bitjws.client import BitJWSSwaggerClient

privkey = bitjws.PrivateKey()

my_pubkey = privkey.pubkey.serialize()
my_address = bitjws.pubkey_to_addr(my_pubkey)

host = "0.0.0.0"
url = "http://0.0.0.0:8002/"
specurl = "%sstatic/swagger.json" % url
username = str(my_address)[0:8]

client = BitJWSSwaggerClient.from_url(specurl, privkey=privkey)

luser = client.get_model('User')(username=username)
user = client.user.addUser(user=luser).result()


def test_register_user():
    # register a new user
    privkey2 = bitjws.PrivateKey()
    my_pubkey2 = privkey2.pubkey.serialize()
    my_address2 = bitjws.pubkey_to_addr(my_pubkey2)

    username2 = str(my_address2)[0:8]

    client2 = BitJWSSwaggerClient.from_url(specurl, privkey=privkey2)

    luser2 = client2.get_model('User')(username=username2)
예제 #12
0
CLIENT_DIR = ".."
if CLIENT_DIR not in sys.path:
    sys.path.insert(0, CLIENT_DIR)

import pikaconfig

TEST_URL = os.environ.get('WSOCK_URL', 'ws://localhost:8123/websocket')

privkey = bitjws.PrivateKey()
pubhash = bitjws.pubkey_to_addr(privkey.pubkey.serialize())

url = 'http://0.0.0.0:8002/'
specurl = '%sstatic/swagger.json' % url

try:
    bitjws_client = BitJWSSwaggerClient.from_url(specurl,
                                                 privkey=privkey, aud='/response')
    username = str(pubhash)[0:8]
    luser = bitjws_client.get_model('User')(username=username)
    user = bitjws_client.user.addUser(user=luser).result()
except:
    bitjws_client = None
    print "Could not connet to BitJWS server... Continuing without it."
    pass

pika_url_parameters = pika.URLParameters(pikaconfig.BROKER_URL)
pika_client = pika.BlockingConnection(pika_url_parameters)
pika_channel = pika_client.channel()
pika_channel.exchange_declare(**pikaconfig.EXCHANGE)


def client_wait_for(client, method, model=None, n=20):