def test_register_payout(self): client = api.Client(url=url, config_path=tempfile.mktemp()) config = client.config() self.assertTrue(client.register()) result = json.loads( urlopen(url + '/api/online/json').read().decode('utf8')) result = [ farmer for farmer in result['farmers'] if farmer['payout_addr'] == config['payout_address'] ] last_seen = result[0]['last_seen'] reg_time = result[0]['reg_time'] result = json.dumps(result, sort_keys=True) expected = json.dumps( [{ 'height': 0, 'nodeid': common.address2nodeid(config['payout_address']), 'last_seen': last_seen, 'payout_addr': config['payout_address'], 'reg_time': reg_time, 'bandwidth_upload': 0, 'bandwidth_download': 0, "ip": "", 'uptime': 100.0 }], sort_keys=True) self.assertEqual(result, expected)
def test_farm_registered(self): client = api.Client(url=url, config_path=tempfile.mktemp(), max_size=1024 * 256) # 256K config = client.config() client.register() befor = datetime.datetime.now() self.assertTrue(client.farm(delay=2, limit=2)) # check farm return true after = datetime.datetime.now() # check that farm did 2 pings with 2 sec delay self.assertTrue(datetime.timedelta(seconds=2) <= (after - befor)) result = json.loads( urlopen(url + '/api/online/json').read().decode('utf8')) result = [ farmer for farmer in result['farmers'] if farmer['payout_addr'] == config['payout_address'] ] last_seen = result[0]['last_seen'] reg_time = result[0]['reg_time'] # check bandwidth and pop as expected result cannot be know bandwidth_upload = result[0].pop('bandwidth_upload') bandwidth_download = result[0].pop('bandwidth_download') self.assertGreater(bandwidth_upload, 0) self.assertGreater(bandwidth_download, 0) result = json.dumps(result, sort_keys=True) expected = json.dumps( [{ 'height': 2, 'nodeid': common.address2nodeid(config['payout_address']), 'last_seen': last_seen, 'payout_addr': config['payout_address'], 'reg_time': reg_time, "ip": "", 'uptime': 100.0 }], sort_keys=True) self.assertEqual(result, expected)
def test_build_min_free_space(self): store_path = tempfile.mktemp() os.mkdir(store_path) my_free_size = psutil.disk_usage(store_path).free - (1024 * 256) # 256 client = api.Client(url=url, config_path=tempfile.mktemp(), store_path=store_path, max_size=1024 * 1024 * 2, min_free_size=my_free_size) # 256 config = client.config() client.register() generated = client.build() self.assertTrue(len(generated) > 0) # build at least 1 shard self.assertTrue(len(generated) < 16) # stoped cause of free Space result = json.loads( urlopen(url + '/api/online/json').read().decode('utf8')) result = [ farmer for farmer in result['farmers'] if farmer['payout_addr'] == config['payout_address'] ] last_seen = result[0]['last_seen'] reg_time = result[0]['reg_time'] result = json.dumps(result, sort_keys=True) expected = json.dumps( [{ 'height': len(generated), 'nodeid': common.address2nodeid(config['payout_address']), 'last_seen': last_seen, 'payout_addr': config['payout_address'], 'reg_time': reg_time, 'bandwidth_upload': 0, 'bandwidth_download': 0, "ip": "", 'uptime': 100.0 }], sort_keys=True) self.assertEqual(result, expected)
def get_nodeid(self): return common.address2nodeid(self.auth_address())