# standard imports import os import tempfile import logging import unittest import random # external imports from hexathon import add_0x # local imports from cic.output import KVWriter from cic.processor import Processor from cic.attachment import Attachment from cic import Proof test_base_dir = os.path.dirname(os.path.realpath(__file__)) test_data_dir = os.path.join(test_base_dir, 'testdata') proof_hash = '0f6fc017f29caf512c0feaaf83bc10614b488311cace2973dc248dc24b01e04f' foo_hash = '2c26b46b68ffc68ff99b453c1d30413413422d706483bfa0f98a5e886266e7ae' bar_hash = 'fcde2b2edba56bf408601fb721fe9b5c338d10ee429ea04fae5511b68fbf8fb9' root_merged_hash = '795fed550ada0ec1eea4309a282f5910bc3bdb3a9762c7d9cc25d6de71c45096' root_unmerged_hash = '5dc81e51703e624f498663e7d5d70429b824e9ff60f92b61fe47eb6862a971b4' class TestCICBase(unittest.TestCase): def setUp(self): super(TestCICBase, self).setUp() random.seed(42) f = open('/dev/urandom', 'rb') addresses = [] for i in range(3): address_bytes = f.read(32) addresses.append(add_0x(address_bytes.hex())) self.token_symbol = 'FOO' token_address_bytes = f.read(20) token_index_address_bytes = f.read(20) address_declarator_address_bytes = f.read(20) self.token_address = add_0x(token_address_bytes.hex()) self.token_index_address = add_0x(token_index_address_bytes.hex()) self.address_declarator_address = add_0x(address_declarator_address_bytes.hex()) f.close() self.outputs_dir = tempfile.mkdtemp() self.outputs_writer = KVWriter(self.outputs_dir) self.core_processor = Processor(outputs_writer=self.outputs_writer) self.resources = { 'token': { 'reference': self.token_address, 'key_address': addresses[0], }, 'token_index': { 'reference': self.token_index_address, 'key_address': addresses[1], }, 'address_declarator': { 'reference': self.address_declarator_address, 'key_address': addresses[2], }, } proof_dir = os.path.join(test_data_dir, 'proof') attach = Attachment(path=proof_dir) attach.load() self.proofs = Proof(proof_dir, attachments=attach) self.proofs.load()