def setUp(self): for role in self.roles: try: # check if the role exists by get_balance role.delete() finally: result, message = role.create() self.assertEqual(result, 0, message) # register did for role A~F, if not registered for role in self.roles[:-1]: ec, message = mvs_rpc.list_dids(role.name, role.password) if ec == 0 and len(message['dids']) > 0: pass else: if role != Alice: Alice.send_etp(role.mainaddress(), 10**8) Alice.mining() ec, message = role.register_did() self.assertEqual(ec, 0, "error: {}, message: {}".format(ec, message)) Alice.mining() if self.need_mine: # mine to clear the tx pool Alice.mining() # record current height _, (hash, height) = mvs_rpc.getblockheader() print "current block height=[%s], hash=[%s]" % (height, hash)
def setUp(self): MVSTestCaseBase.setUp(self) self.group_ABC = [Alice, Bob, Cindy] self.group_DEF = [Dale, Eric, Frank] self.addr_ABC = common.create_multisig_address(self.group_ABC, 2) self.addr_DEF = common.create_multisig_address(self.group_DEF, 2) # register did if not registered self.did_ABC = "Alice.Bob.Cindy@DIID" self.did_DEF = "Dale.Eric.Frank@DIID" for roles, addr, attr_name in [ (self.group_ABC, self.addr_ABC, "did_ABC"), (self.group_DEF, self.addr_DEF, "did_DEF") ]: ec, message = mvs_rpc.list_dids(roles[-1].name, roles[-1].password) self.assertEqual(ec, 0, message) for did_info in message['dids']: if did_info["address"] == addr: setattr(self, attr_name, did_info["symbol"]) break else: # not issued Alice.send_etp(addr, 10**8) Alice.mining() did_symbol = getattr(self, attr_name) ec, tx = mvs_rpc.register_did(roles[0].name, roles[0].password, addr, did_symbol) self.assertEqual(ec, 0, tx) ec, tx = mvs_rpc.sign_multisigtx(roles[1].name, roles[1].password, tx, True) self.assertEqual(ec, 0, tx) Alice.mining()
def didaddress(self): if None == self.did_address: ec, message = mvs_rpc.list_dids(self.name, self.password) assert (ec == 0) if message: dids = [MOCs.Did.init(i) for i in message if i] found_dids = filter(lambda a: a.symbol == self.did_symbol, dids) assert(len(found_dids) == 1) self.did_address = found_dids[0].address return self.did_address
def test_7_change_did(self): '''modify did between Zac's addresses''' temp_did = "ZAC.DIID@" + common.get_timestamp() Alice.send_etp(Zac.mainaddress(), 10**8) Alice.mining() ec, message = mvs_rpc.register_did(Zac.name, Zac.password, Zac.mainaddress(), temp_did) self.assertEqual(ec, 0, message) Alice.mining() # no enough balance, unspent = 0, payment = 10000 ec, message = mvs_rpc.change_did(Zac.name, Zac.password, Zac.addresslist[1], temp_did) self.assertEqual(ec, 3302, message) Alice.send_etp(Zac.addresslist[1], 10**4) Alice.mining() ec, message = mvs_rpc.change_did(Zac.name, Zac.password, Zac.addresslist[1], temp_did) self.assertEqual(ec, 0, message) Alice.mining() ec, message = mvs_rpc.list_dids(Zac.name, Zac.password) self.assertEqual(ec, 0, message) self.assertEqual(message['dids'][0]['symbol'], temp_did, message) self.assertEqual(message['dids'][0]['address'], Zac.addresslist[1], message) # confirm the modification procedure by list_didaddresses ec, message = mvs_rpc.list_didaddresses(temp_did) self.assertEqual(ec, 0, message) self.assertEqual(message['addresses'][0]["address"], Zac.addresslist[1]) self.assertEqual(message['addresses'][0]["status"], "current") self.assertEqual(message['addresses'][1]["address"], Zac.addresslist[0]) self.assertEqual(message['addresses'][1]["status"], "history")