Example #1
0
    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()
Example #2
0
    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()