def test_rorpiter_xfer(self): """Test if hashes are transferred in files, rorpiter""" Globals.security_level = 'override' conn = SetConnections._init_connection( b'%b %b/server.py' % (os.fsencode(sys.executable), abs_testing_dir)) assert conn.reval("lambda x: x+1", 4) == 5 # connection sanity check fp = hash.FileWrapper(io.BytesIO(self.s1.encode())) conn.Globals.set('tmp_file', fp) fp_remote = conn.Globals.get('tmp_file') assert fp_remote.read() == self.s1.encode() assert fp_remote.close().sha1_digest == self.s1_hash # Tested xfer of file, now test xfer of files in rorpiter root = MakeOutputDir() rp1 = root.append('s1') rp1.write_string(self.s1) rp2 = root.append('s2') rp2.write_string(self.s2) rp1.setfile(hash.FileWrapper(rp1.open('rb'))) rp2.setfile(hash.FileWrapper(rp2.open('rb'))) rpiter = iter([rp1, rp2]) conn.Globals.set('tmp_conn_iter', rpiter) remote_iter = conn.Globals.get('tmp_conn_iter') rorp1 = next(remote_iter) fp = hash.FileWrapper(rorp1.open('rb')) read_s1 = fp.read().decode() assert read_s1 == self.s1, "Read string 1 %s isn't the same as written string %s" % ( read_s1, self.s1) ret_val = fp.close() assert isinstance(ret_val, hash.Report), ret_val assert ret_val.sha1_digest == self.s1_hash rorp2 = next(remote_iter) fp2 = hash.FileWrapper(rorp2.open('rb')) read_s2 = fp2.read().decode() assert read_s2 == self.s2, "Read string 2 %s isn't the same as written string %s" % ( read_s2, self.s2) assert fp2.close().sha1_digest == self.s2_hash conn.quit()
def test_rorpiter_xfer(self): """Test if hashes are transferred in files, rorpiter""" Security._security_level = "override" conn = SetConnections._init_connection( b'%b %b/server.py' % (os.fsencode(sys.executable), abs_testing_dir)) # make a connection sanity check self.assertEqual(conn.reval("lambda x: x+1", 4), 5) fp = hash.FileWrapper(io.BytesIO(self.s1.encode())) conn.Globals.set('tmp_file', fp) fp_remote = conn.Globals.get('tmp_file') self.assertEqual(fp_remote.read(), self.s1.encode()) self.assertEqual(fp_remote.close().sha1_digest, self.s1_hash) # Tested xfer of file, now test xfer of files in rorpiter root = MakeOutputDir() rp1 = root.append('s1') rp1.write_string(self.s1) rp2 = root.append('s2') rp2.write_string(self.s2) rp1.setfile(hash.FileWrapper(rp1.open('rb'))) rp2.setfile(hash.FileWrapper(rp2.open('rb'))) rpiter = iter([rp1, rp2]) conn.Globals.set('tmp_conn_iter', rpiter) remote_iter = conn.Globals.get('tmp_conn_iter') rorp1 = next(remote_iter) fp = hash.FileWrapper(rorp1.open('rb')) read_s1 = fp.read().decode() self.assertEqual(read_s1, self.s1) ret_val = fp.close() self.assertIsInstance(ret_val, hash.Report) self.assertEqual(ret_val.sha1_digest, self.s1_hash) rorp2 = next(remote_iter) fp2 = hash.FileWrapper(rorp2.open('rb')) read_s2 = fp2.read().decode() self.assertEqual(read_s2, self.s2) self.assertEqual(fp2.close().sha1_digest, self.s2_hash) conn.quit()