def setUp(self): self.challenge = Heartbeat.challenge_type().\ fromdict( MockValues .get_challenges_response['challenges'][0]['challenge']) self.heartbeat = Heartbeat.fromdict( MockValues.connect_response['heartbeat']) self.tag = Heartbeat.tag_type().fromdict( MockValues.get_chunks_response['chunks'][0]['tag']) self.expiration = datetime.utcnow( ) + timedelta(int(MockValues.get_chunks_response['chunks'][0]['due'])) self.client = mock.MagicMock() self.manager = ThreadManager() self.test_hash = 'hash' self.test_size = 100 self.test_seed = 'seed' self.contract = DownstreamContract(self.client, self.test_hash, self.test_seed, self.test_size, self.challenge, self.expiration, self.tag, self.manager, os.path.join('data', 'chunks')) self.contract.generate_data()
def setUp(self): self.challenge = Heartbeat.challenge_type()() self.tag = Heartbeat.tag_type()() self.expiration = datetime.utcnow()+timedelta(seconds=60) self.contract = Contract('hash', 'seed', 12345, self.challenge, self.expiration, self.tag)
def test_challenge_working(self): self.client.contract = self.test_contract self.client.heartbeat = self.test_heartbeat with mock.patch('downstream_farmer.client.requests.get') as patch: inst = patch.return_value inst.json.return_value = MockValues.get_challenge_response self.client.get_challenge() self.assertEqual(self.client.contract.challenge, Heartbeat.challenge_type().fromdict( MockValues.get_challenge_response['challenge'])) self.assertEqual(self.client.contract.expiration, datetime.strptime( MockValues.get_challenge_response['expiration'], '%Y-%m-%dT%H:%M:%S'))
def setUp(self): self.server_url = 'https://test.url/' self.address = base58.b58encode_check(b'\x00'+os.urandom(20)) self.client = DownstreamClient(self.address) self.test_contract = Contract(MockValues.get_chunk_response['file_hash'], MockValues.get_chunk_response['seed'], MockValues.get_chunk_response['size'], Heartbeat.challenge_type().fromdict( MockValues.get_chunk_response['challenge']), datetime.strptime( MockValues.get_chunk_response['expiration'], '%Y-%m-%dT%H:%M:%S'), Heartbeat.tag_type().fromdict( MockValues.get_chunk_response['tag'])) self.test_heartbeat = Heartbeat.fromdict(MockValues.connect_response['heartbeat'])
def setUp(self): self.server_url = 'https://test.url/' self.api_path = '/api/downstream/v1' self.size = 100 self.address = base58.b58encode_check(b'\x00' + os.urandom(20)) self.token = binascii.hexlify(os.urandom(16)).decode('ascii') self.msg = '' self.sig = '' self.thread_manager = ShellApplication() self.contract_thread = ManagedThread() self.chunk_dir = os.path.join('data', 'chunks') self.client = DownstreamClient(self.server_url, self.token, self.address, self.size, self.msg, self.sig, self.thread_manager, self.chunk_dir) self.client.session = mock.MagicMock() self.test_contract = \ DownstreamContract(self.client, MockValues.get_chunks_response[ 'chunks'][0]['file_hash'], MockValues.get_chunks_response[ 'chunks'][0]['seed'], MockValues.get_chunks_response[ 'chunks'][0]['size'], Heartbeat.challenge_type().fromdict( MockValues .get_chunks_response ['chunks'][0]['challenge']), datetime.utcnow() + timedelta( seconds=int( MockValues .get_chunks_response ['chunks'][0]['due'])), Heartbeat.tag_type().fromdict( MockValues .get_chunks_response ['chunks'][0]['tag']), self.thread_manager, self.chunk_dir) self.test_heartbeat = Heartbeat.fromdict( MockValues.connect_response['heartbeat'])
def setUp(self): self.challenge = Heartbeat.challenge_type().\ fromdict(MockValues.get_challenge_response['challenge']) self.heartbeat = Heartbeat.fromdict( MockValues.connect_response['heartbeat']) self.tag = Heartbeat.tag_type().fromdict( MockValues.get_chunk_response['tag']) self.expiration = datetime.utcnow( ) + timedelta(int(MockValues.get_chunk_response['due'])) self.client = mock.MagicMock() self.api = API() self.contract = DownstreamContract(self.client, 'hash', 'seed', 100, self.challenge, self.expiration, self.tag, self.api)
def setUp(self): self.server_url = 'https://test.url/' self.api_path = '/api/downstream/v1' self.size = 100 self.address = base58.b58encode_check(b'\x00' + os.urandom(20)) self.token = binascii.hexlify(os.urandom(16)).decode('ascii') self.msg = '' self.sig = '' self.api = API() self.client = DownstreamClient(self.server_url, self.token, self.address, self.size, self.msg, self.sig, self.api) self.test_contract = DownstreamContract(self.client, MockValues.get_chunk_response[ 'file_hash'], MockValues.get_chunk_response[ 'seed'], MockValues.get_chunk_response[ 'size'], Heartbeat.challenge_type() .fromdict( MockValues. get_chunk_response['challe' 'nge']), datetime.utcnow() + timedelta( seconds=int( MockValues. get_chunk_response['du' 'e'] )), Heartbeat.tag_type().fromdict( MockValues .get_chunk_response['ta' 'g'], ), self.api) self.test_heartbeat = Heartbeat.fromdict( MockValues.connect_response['heartbeat'])
def test_update_challenge_working(self): self.contract.answered = True self.client.heartbeat = self.heartbeat self.api = API() self.contract.time_remaining = mock.MagicMock() self.contract.time_remaining.return_value = 0 with mock.patch('downstream_farmer.contract.requests.get') as getpatch: getpatch.return_value.json.return_value =\ MockValues.get_challenge_response self.contract.update_challenge() self.assertEqual(self.contract.challenge, Heartbeat.challenge_type().fromdict( MockValues .get_challenge_response['challenge']), self.api) self.assertAlmostEqual((self. contract.expiration - datetime.utcnow()). total_seconds(), int(MockValues. get_challenge_response['due']), delta=0.5)
def setUp(self): self.challenge = Heartbeat.challenge_type().\ fromdict( MockValues .get_challenges_response['challenges'][0]['challenge']) self.heartbeat = Heartbeat.fromdict( MockValues.connect_response['heartbeat']) self.tag = Heartbeat.tag_type().fromdict( MockValues.get_chunks_response['chunks'][0]['tag']) self.expiration = datetime.utcnow() + timedelta( int(MockValues.get_chunks_response['chunks'][0]['due'])) self.client = mock.MagicMock() self.manager = ThreadManager() self.test_hash = 'hash' self.test_size = 100 self.test_seed = 'seed' self.contract = DownstreamContract(self.client, self.test_hash, self.test_seed, self.test_size, self.challenge, self.expiration, self.tag, self.manager, os.path.join('data', 'chunks')) self.contract.generate_data()