Skip to content
This repository has been archived by the owner on Nov 15, 2021. It is now read-only.

Commit

Permalink
fixing up tests so they all work for both mainnet and testnet settings
Browse files Browse the repository at this point in the history
  • Loading branch information
localhuman committed Aug 10, 2017
1 parent 31ead4b commit e5d69fe
Show file tree
Hide file tree
Showing 2 changed files with 53 additions and 27 deletions.
64 changes: 43 additions & 21 deletions neo/Core/test_genesis_block.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,11 +14,14 @@ class GenesisBlockTestCase(unittest.TestCase):

testnet_genesis_hash = 'b3181718ef6167105b70920e4a8fbbd0a0a56aacf460d70e10ba6fa1668f1fef'
testnet_ghash_current= ''
# b'a86943013e4a0eac66024723fa8689f355c85db674365fc9481a37d3ed5480ab' <-- current

testnet_genesis_merkle = b'c673a4b28f32ccb6d54cf721e8640d7a979def7cef5e4885bb085618ddeb38bd'
mainnet_genesis_merkle = b'803ff4abe3ea6533bcc0be574efa02f83ae8fdc651c879056b0d9be336c01bf4'

testnet_genesis_raw = b'000000000000000000000000000000000000000000000000000000000000000000000000bd38ebdd185608bb85485eef7cef9d977a0d64e821f74cd5b6cc328fb2a473c665fc8857000000001dac2b7c00000000f3812db982f3b0089a21a278988efeec6a027b25'
currraw = b'000000000000000000000000000000000000000000000000000000000000000000000000bd38ebdd185608bb85485eef7cef9d977a0d64e821f74cd5b6cc328fb2a473c665fc8857000000001dac2b7c00000000f3812db982f3b0089a21a278988efeec6a027b25'

mainnet_genesis_hash = b'd42561e3d30e15be6400b6df2f328e02d2bf6354c41dce433bc57687c82144bf'
mainnet_genesis_raw = b''

# b'7a9909d9a8fcf815bacb78b67de8b40936f24d78f7dcb90c0f1857db75a005fa' <-- current
testnet_genesis_index = 0
Expand All @@ -36,7 +39,7 @@ class GenesisBlockTestCase(unittest.TestCase):
gen_issue_tx_id = b'bdecbb623eee6f9ade28d5a8ff5fb3ea9c9d73af039e0286201b3b0291fb4d4a'

contractraw= b'54210209e7fd41dfb5c2f8dc72eb30358ac100ea8c72da18847befe06eade68cebfcb9210327da12b5c40200e9f65569476bbff2218da4f32548ff43b6387ec1416a231ee821034ff5ceeac41acf22cd5ed2da17a6df4dd8358fcb2bfb1a43208ad0feaab2746b21026ce35b29147ad09e4afe4ec4a7319095f08198fa8babbe3c56e970b143528d2221038dddc06ce687677a53d54f096d2591ba2302068cf123c1f2d75c2dddc542557921039dafd8571a641058ccc832c5e2111ea39b09c0bde36050914384f7a48bce9bf92102d02b1873a0863cd042cc717da31cea0d7cf9db32b74d4c72c01b0011503e2e2257ae'

mainnet_contract_raw = b'542102486fd15702c4490a26703112a5cc1d0923fd697a33406bd5a1c00e0013b09a7021024c7b7fb6c310fccf1ba33b082519d82964ea93868d676662d4a59ad548df0e7d2102aaec38470f6aad0042c6e877cfd8087d2676b0f516fddd362801b9bd3936399e2103b209fd4f53a7170ea4444e0cb0a6bb6a53c2bd016926989cf85f9b0fba17a70c2103b8d9d5771d8f513aa0869b9cc8d50986403b78c6da36890638c3d46a5adce04a2102ca0e27697b9c248f6f16e085fd0061e26f44da85b58ee835c110caa5ec3ba5542102df48f60e8f3e01c48ff40b9b7f1310d7a8b2a193188befe1c2e3df740e89509357ae'

issuetx_rraw = b'01000000019b7cffdaa674beae0f930ebe6085af9093e5fe56b34a5c220ccdcf6efc336fc50000c16ff2862300197ff6783d512a740d42f4cc4f5572955fa44c95'

Expand All @@ -47,12 +50,19 @@ class GenesisBlockTestCase(unittest.TestCase):
b'bdecbb623eee6f9ade28d5a8ff5fb3ea9c9d73af039e0286201b3b0291fb4d4a',
]

mainnet_genesis_tx_hashes = [
b"fb5bd72b2d6792d75dc2f1084ffa9e9f70ca85543c717a6b13d9959b452a57d6",
b"c56f33fc6ecfcd0c225c4ab356fee59390af8560be0e930faebe74a6daff7c9b",
b"602c79718b16e442de58778e148d0b1084e3b2dffd5de6b7b16cee7969282de7",
b"3631f66024ca6f5b033d7e0809eb993443374830025af904fb51b0334f127cda"
]

@classmethod
def setUpClass(cls):
if Settings.MAGIC == 1953787457:
print('ok to test!')
else:
raise unittest.SkipTest('Only test genesis blocks with testnet protocol settings')
# else:
# raise unittest.SkipTest('Only test genesis blocks with testnet protocol settings')

def test_miner_tx(self):
miner_tx = MinerTransaction()
Expand All @@ -69,21 +79,22 @@ def test_issue_tx(self):

script = Contract.CreateMultiSigRedeemScript(int(len(Blockchain.StandbyValidators()) / 2) + 1, Blockchain.StandbyValidators())

self.assertEqual(script, self.contractraw)
out = Helper.RawBytesToScriptHash(script)
if Settings.MAGIC == 1953787457:
self.assertEqual(script, self.contractraw)
out = Helper.RawBytesToScriptHash(script)

output = TransactionOutput(
share_tx.HashToByteString(),
Blockchain.SystemShare().Amount,
out
)
output = TransactionOutput(
share_tx.HashToByteString(),
Blockchain.SystemShare().Amount,
out
)

script = Witness( bytearray(0), bytearray(ScriptOp.PUSHT))
script = Witness( bytearray(0), bytearray(ScriptOp.PUSHT))

issue_tx = IssueTransaction([],[output],[], [script])
issue_tx = IssueTransaction([],[output],[], [script])

self.assertEqual(issue_tx.GetHashData(), self.issuetx_rraw)
self.assertEqual(issue_tx.HashToByteString(), self.gen_issue_tx_id)
self.assertEqual(issue_tx.GetHashData(), self.issuetx_rraw)
self.assertEqual(issue_tx.HashToByteString(), self.gen_issue_tx_id)

def test_system_share(self):

Expand All @@ -110,13 +121,24 @@ def test_genesis_block(self):
self.assertEqual(block.Index, self.testnet_genesis_index)
self.assertEqual(block.ConsensusData, self.testnet_genesis_nonce)
self.assertEqual(block.Timestamp, self.genblock_timestamp)
self.assertEqual(block.MerkleRoot, self.testnet_genesis_merkle)


txhashes = [tx.HashToByteString() for tx in block.Transactions]
self.assertEqual(txhashes, self.test_genesis_tx_hashes)
rd = block.RawData()

if Settings.MAGIC == 1953787457:
self.assertEqual(block.MerkleRoot, self.testnet_genesis_merkle)
self.assertEqual(txhashes, self.test_genesis_tx_hashes)
self.assertEqual(block.RawData(), self.testnet_genesis_raw)
self.assertEqual(block.HashToString(), self.testnet_genesis_hash)
else:
self.assertEqual(block.MerkleRoot, self.mainnet_genesis_merkle)
self.assertEqual(txhashes, self.mainnet_genesis_tx_hashes)
self.assertEqual(block.HashToByteString(), self.mainnet_genesis_hash)






rd = block.RawData()

self.assertEqual(block.RawData(), self.testnet_genesis_raw)
self.assertEqual(block.HashToString(), self.testnet_genesis_hash)
16 changes: 10 additions & 6 deletions neo/Implementations/Blockchains/LevelDB/test_level_db.py
Original file line number Diff line number Diff line change
Expand Up @@ -20,18 +20,14 @@ class LevelDBTest(unittest.TestCase):
block_one_raw = b'00000000ef1f8f66a16fba100ed760f4ac6aa5a0d0bb8f4a0e92705b106761ef181718b3d0765298ceb5f57de7d2b0dab00ed25be4134706ada2d90adb8b7e3aba323a8e1abd125901000000d11f7a289214bdaff3812db982f3b0089a21a278988efeec6a027b2501fd450140884037dd265cb5f5a54802f53c2c8593b31d5b8a9c0bad4c7e366b153d878989d168080ac36b930036a9eb966b48c70bb41792e698fa021116f27c09643563b840e83ab14404d964a91dbac45f5460e88ad57196b1779478e3475334af8c1b49cd9f0213257895c60b5b92a4800eb32d785cbb39ae1f022528943909fd37deba63403677848bf98cc9dbd8fbfd7f2e4f34471866ea82ca6bffbf0f778b6931483700c17829b4bd066eb04983d3aac0bd46b9c8d03a73a8e714d3119de93cd9522e314054d16853b22014190063f77d9edf6fbccefcf71fffd1234f688823b4e429ae5fa639d0a664c842fbdfcb4d6e21f39d81c23563b92cffa09696d93c95bc4893a6401a43071d00d3e854f7f1f321afa7d5301d36f2195dc1e2643463f34ae637d2b02ae0eb11d4256c507a4f8304cea6396a7fce640f50acb301c2f6336d27717e84f155210209e7fd41dfb5c2f8dc72eb30358ac100ea8c72da18847befe06eade68cebfcb9210327da12b5c40200e9f65569476bbff2218da4f32548ff43b6387ec1416a231ee821034ff5ceeac41acf22cd5ed2da17a6df4dd8358fcb2bfb1a43208ad0feaab2746b21026ce35b29147ad09e4afe4ec4a7319095f08198fa8babbe3c56e970b143528d2221038dddc06ce687677a53d54f096d2591ba2302068cf123c1f2d75c2dddc542557921039dafd8571a641058ccc832c5e2111ea39b09c0bde36050914384f7a48bce9bf92102d02b1873a0863cd042cc717da31cea0d7cf9db32b74d4c72c01b0011503e2e2257ae010000d11f7a2800000000'
block_one_hash= b'0012f8566567a9d7ddf25acb5cf98286c9703297de675d01ba73fbfe6bcb841c'


@classmethod
def setUpClass(self):
self._blockchain = LevelDBBlockchain(path=self.LEVELDB_TESTPATH)
Blockchain.RegisterBlockchain(self._blockchain)
self._genesis = Blockchain.GenesisBlock()


# if Settings.MAGIC == 1953787457:
# print('ok to test!')
# else:
# raise unittest.SkipTest('Only test genesis blocks with testnet protocol settings')

@classmethod
def tearDownClass(self):
self._blockchain.Dispose()
Expand All @@ -42,7 +38,11 @@ def test__initial_state(self):

self.assertEqual(self._blockchain.CurrentBlockHash(), self._genesis.HashToByteString())


self.assertEqual(self._blockchain.CurrentHeaderHash(), self._genesis.Header().HashToByteString())

self.assertEqual(self._blockchain.CurrentHeaderHash(), self._genesis.Header().HashToByteString())

self.assertEqual(self._blockchain.HeaderHeight(), 0)

self.assertEqual(self._blockchain.Height(), 0)
Expand All @@ -58,7 +58,11 @@ def test_add_header(self):
header = block_one.Header()
hHash = header.HashToByteString()

self.assertEqual(self._blockchain.CurrentHeaderHash(), b'b3181718ef6167105b70920e4a8fbbd0a0a56aacf460d70e10ba6fa1668f1fef')
if Settings.MAGIC == 1953787457:
self.assertEqual(self._blockchain.CurrentHeaderHash(), b'b3181718ef6167105b70920e4a8fbbd0a0a56aacf460d70e10ba6fa1668f1fef')
else:
self.assertEqual(self._blockchain.CurrentHeaderHash(), b'd42561e3d30e15be6400b6df2f328e02d2bf6354c41dce433bc57687c82144bf')

self.assertEqual(self._blockchain.HeaderHeight(), 0)

#add it to leveldb
Expand Down

0 comments on commit e5d69fe

Please sign in to comment.