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 get_prefix_and_conn(self, path, return_path): """Return (prefix, connection) tuple""" if path: return (return_path, SetConnections.init_connection("./chdir-wrapper " + path)) else: return ("./", Globals.local_connection)
def get_prefix_and_conn(self, path, return_path): """Return (prefix, connection) tuple""" if path: return (return_path, SetConnections.init_connection("./chdir-wrapper "+path)) else: return ('./', Globals.local_connection)