def testHBTFile(self):
     mc = Session((StorageServiceTest.addr, StorageServiceTest.port), None)
     mc.start()
     service = StorageService(mc)
     hbtFile = service.getElement(StorageServiceTest.testSpacePath).resolve(
         'HBTFileTest.hbt').toHBTFileElement()
     hbtFile.initialize([["Column 1", HBTFileElement.BYTE],
                         ["Column 2", HBTFileElement.SHORT],
                         ["Column 3", HBTFileElement.INT],
                         ["Column 4", HBTFileElement.LONG],
                         ["Column 5", HBTFileElement.FLOAT],
                         ["Column 6", HBTFileElement.DOUBLE]])
     hbtFile.appendRow([1, 2, 3, 4, 5, 6])
     hbtFile.appendRows([[1, 2, 3, 4, 5, 6], [1, 2, 3, 4, 5, 6],
                         [1, 2, 3, 4, 5, 6], [1.1, 2.2, 3.3, 4.4, 5.5, 6.6],
                         [1.1, 2.2, 3.3, 4.4, 5.5, 6.6]])
     self.assertEqual(hbtFile.readRows(0, 1)[0], [1, 2, 3, 4, 5, 6])
     self.assertEqual(hbtFile.readRow(1), [1, 2, 3, 4, 5, 6])
     self.assertEqual(hbtFile.readRow(2), [1, 2, 3, 4, 5, 6])
     self.assertEqual(hbtFile.readRow(3), [1, 2, 3, 4, 5, 6])
     self.assertEqual(hbtFile.readRow(4), [1, 2, 3, 4, 5.5, 6.6])
     self.assertEqual(hbtFile.readRow(5), [1, 2, 3, 4, 5.5, 6.6])
     self.assertEqual(hbtFile.getColumnCount(), 6)
     self.assertEqual(hbtFile.getRowCount(), 6)
     self.assertEqual(hbtFile.getHeadNames(), [
         'Column 1', 'Column 2', 'Column 3', 'Column 4', 'Column 5',
         'Column 6'
     ])
     mc.stop()
 def testWrite(self):
     mc = Session((StorageServiceTest.addr, StorageServiceTest.port), None)
     mc.start()
     testRoot = StorageService(mc).getElement(
         StorageServiceTest.testSpacePath)
     A1 = testRoot.resolve('_A1')
     A1.write(b"ABCDE", 10)
     self.assertEqual(
         A1.metaData(), {
             "Name": "_A1",
             "Path": "{}_A1".format(StorageServiceTest.testSpacePath),
             "Type": "Content",
             "Size": 36
         })
     self.assertEqual(A1.readAsString(0, 16), "1234567890ABCDEf")
     self.assertEqual(A1.readAllAsString(),
                      "1234567890ABCDEfghijklmnopqrstuvwxyz")
     A1.write(b"defghi", 39)
     self.assertEqual(
         A1.metaData(), {
             "Name": "_A1",
             "Path": "{}_A1".format(StorageServiceTest.testSpacePath),
             "Type": "Content",
             "Size": 45
         })
     self.assertEqual(A1.readAsString(35, 10), "z\0\0\0defghi")
     self.assertEqual(A1.readAsString(0, 16), "1234567890ABCDEf")
     mc.stop()
    def testInvokeOtherClient(self):
        class Target:
            def v8(self): return "V8 great!"

            def v9(self): raise ProtocolException("V9 not good.")

            def v10(self): raise IOError("V10 have problems.")

            def v(self, i, b): return "OK"

        mc1 = Session((MessageTransportTest.addr, MessageTransportTest.port), Target(), name="T1-Benz")
        mc1.start()
        checker = Session.newSession((MessageTransportTest.addr, MessageTransportTest.port), None, "T1-Checher")
        benzChecker = checker.blockingInvoker(u"T1-Benz", 10)
        v8r = benzChecker.v8()
        self.assertEqual(v8r, "V8 great!")
        try:
            benzChecker.v9()
            self.assertTrue(False)
        except ProtocolException as e:
            self.assertEqual(e.__str__(), "V9 not good.")
        try:
            benzChecker.v10()
            self.assertTrue(False)
        except ProtocolException as e:
            self.assertEqual(e.__str__(), "V10 have problems.")
        self.assertEqual(benzChecker.v(1, False), "OK")
        try:
            benzChecker.v11()
            self.assertTrue(False)
        except ProtocolException as e:
            self.assertEqual(e.__str__(), "InvokeError: Command v11 not found.")
        mc1.stop()
        checker.stop()
 def testList(self):
     mc = Session((StorageServiceTest.addr, StorageServiceTest.port), None)
     mc.start()
     service = StorageService(mc)
     a = service.listElements(StorageServiceTest.testSpacePath)
     self.assertEqual(a, ["_A1", "_A2", "a1", "a2", "a3", "a4", "a5"])
     mc.stop()
 def testCreateDirectory(self):
     mc = Session((StorageServiceTest.addr, StorageServiceTest.port), None)
     mc.start()
     testRoot = StorageService(mc).getElement(
         StorageServiceTest.testSpacePath)
     testRoot.resolve('a2').resolve('NewDir').createDirectory()
     self.assertEqual(testRoot.resolve('a2').listElements(), ["NewDir"])
     mc.stop()
 def testRead(self):
     mc = Session((StorageServiceTest.addr, StorageServiceTest.port), None)
     mc.start()
     testRoot = StorageService(mc).getElement(
         StorageServiceTest.testSpacePath)
     self.assertEqual(testRoot.resolve('/_A1').read(1, 10), b"234567890a")
     self.assertEqual(testRoot.resolve('/////_A1').read(30, 6), b"uvwxyz")
     self.assertEqual(testRoot.resolve('_A2').readAll(), b'0123456789')
     mc.stop()
 def testElementNote(self):
     mc = Session((StorageServiceTest.addr, StorageServiceTest.port), None)
     mc.start()
     testRoot = StorageService(mc).getElement(
         StorageServiceTest.testSpacePath)
     self.assertEqual(testRoot.readNote(), "")
     testRoot.writeNote("Test Note")
     self.assertEqual(testRoot.readNote(), "Test Note")
     mc.stop()
 def testClientNameDuplicated(self):
     mc1 = Session((MessageTransportTest.addr, MessageTransportTest.port), None, name="T2-ClientDuplicated")
     mc1.start()
     mc2 = Session((MessageTransportTest.addr, MessageTransportTest.port), None, name="T2-ClientDuplicated")
     self.assertRaises(ProtocolException, lambda: mc2.start())
     mc1.stop()
     time.sleep(0.5)
     mc2.blockingInvoker().connect(u"T2-ClientDuplicated")
     mc2.stop()
 def testCreateDirectory(self):
     mc = Session((StorageServiceTest.addr, StorageServiceTest.port), None)
     mc.start()
     service = StorageService(mc)
     service.createDirectory("{}a2/NewDir".format(
         StorageServiceTest.testSpacePath))
     self.assertEqual(
         service.listElements("{}a2".format(
             StorageServiceTest.testSpacePath)), ["NewDir"])
     mc.stop()
 def testNote(self):
     mc = Session((StorageServiceTest.addr, StorageServiceTest.port), None)
     mc.start()
     service = StorageService(mc)
     self.assertEqual(service.readNote(StorageServiceTest.testSpacePath),
                      u"")
     service.writeNote(StorageServiceTest.testSpacePath, u"Test Note")
     self.assertEqual(service.readNote(StorageServiceTest.testSpacePath),
                      u"Test Note")
     mc.stop()
 def testElementMetaData(self):
     mc = Session((StorageServiceTest.addr, StorageServiceTest.port), None)
     mc.start()
     testRoot = StorageService(mc).getElement(
         StorageServiceTest.testSpacePath)
     self.assertEqual(
         testRoot.resolve("a1").metaData(), {
             "Name": "a1",
             "Path": "{}a1".format(StorageServiceTest.testSpacePath),
             "Type": "Collection"
         })
     mc.stop()
 def testCreateFile(self):
     mc = Session((StorageServiceTest.addr, StorageServiceTest.port), None)
     mc.start()
     testRoot = StorageService(mc).getElement(
         StorageServiceTest.testSpacePath)
     testRoot.resolve('NewFile').createFile()
     testRoot.resolve('a2/NewFile').createFile()
     self.assertEqual(
         testRoot.listElements(),
         ["NewFile", "_A1", "_A2", "a1", "a2", "a3", "a4", "a5"])
     self.assertEqual(testRoot.resolve('a2').listElements(), ["NewFile"])
     mc.stop()
 def testMetaData(self):
     mc = Session((StorageServiceTest.addr, StorageServiceTest.port), None)
     mc.start()
     service = StorageService(mc)
     self.assertEqual(
         service.metaData(u"{}a1".format(StorageServiceTest.testSpacePath)),
         {
             u"Name": u"a1",
             u"Path": u"{}a1".format(StorageServiceTest.testSpacePath),
             u"Type": u"Collection"
         })
     mc.stop()
 def testRemoteInvokeAndAsync(self):
     client1 = Session((MessageTransportTest.addr, MessageTransportTest.port), None)
     f1 = client1.start()
     invoker1 = client1.asynchronousInvoker()
     future1 = invoker1.co()
     latch1 = threading.Semaphore(0)
     future1.onComplete(lambda: latch1.release())
     latch1.acquire()
     self.assertTrue(future1.isDone())
     self.assertFalse(future1.isSuccess())
     self.assertEqual(future1.exception().description, "Method not found: co.")
     client1.stop()
 def testRead(self):
     mc = Session((StorageServiceTest.addr, StorageServiceTest.port), None)
     mc.start()
     service = StorageService(mc)
     self.assertEqual(
         service.read(u"{}_A1".format(StorageServiceTest.testSpacePath), 1,
                      10), b"234567890a")
     self.assertEqual(
         service.read(u"{}_A1".format(StorageServiceTest.testSpacePath), 30,
                      6), b"uvwxyz")
     self.assertEqual(
         service.readAll(u"{}_A2".format(StorageServiceTest.testSpacePath)),
         b'0123456789')
     mc.stop()
 def testElementDelete(self):
     mc = Session((StorageServiceTest.addr, StorageServiceTest.port), None)
     mc.start()
     testRoot = StorageService(mc).getElement(
         StorageServiceTest.testSpacePath)
     self.assertEqual(testRoot.listElements(),
                      ["_A1", "_A2", "a1", "a2", "a3", "a4", "a5"])
     testRoot.resolve('a1').delete()
     self.assertEqual(testRoot.listElements(),
                      ["_A1", "_A2", "a2", "a3", "a4", "a5"])
     testRoot.resolve('_A2').delete()
     self.assertEqual(testRoot.listElements(),
                      ["_A1", "a2", "a3", "a4", "a5"])
     mc.stop()
 def testCreateFile(self):
     mc = Session((StorageServiceTest.addr, StorageServiceTest.port), None)
     mc.start()
     service = StorageService(mc)
     service.createFile("{}NewFile".format(
         StorageServiceTest.testSpacePath))
     service.createFile("{}a2/NewFile".format(
         StorageServiceTest.testSpacePath))
     self.assertEqual(
         service.listElements(StorageServiceTest.testSpacePath),
         ["NewFile", "_A1", "_A2", "a1", "a2", "a3", "a4", "a5"])
     self.assertEqual(
         service.listElements("{}a2".format(
             StorageServiceTest.testSpacePath)), ["NewFile"])
     mc.stop()
 def testDelete(self):
     mc = Session((StorageServiceTest.addr, StorageServiceTest.port), None)
     mc.start()
     service = StorageService(mc)
     self.assertEqual(
         service.listElements(StorageServiceTest.testSpacePath),
         ["_A1", "_A2", "a1", "a2", "a3", "a4", "a5"])
     service.delete("{}a1".format(StorageServiceTest.testSpacePath))
     self.assertEqual(
         service.listElements(StorageServiceTest.testSpacePath),
         ["_A1", "_A2", "a2", "a3", "a4", "a5"])
     service.delete("{}_A2".format(StorageServiceTest.testSpacePath))
     self.assertEqual(
         service.listElements(StorageServiceTest.testSpacePath),
         ["_A1", "a2", "a3", "a4", "a5"])
     mc.stop()
 def testAppend(self):
     mc = Session((StorageServiceTest.addr, StorageServiceTest.port), None)
     mc.start()
     service = StorageService(mc)
     service.append(u"{}_A1".format(StorageServiceTest.testSpacePath),
                    b"ABCDE")
     self.assertEqual(
         service.metaData(u"{}_A1".format(
             StorageServiceTest.testSpacePath)), {
                 u"Name": u"_A1",
                 u"Path": u"{}_A1".format(StorageServiceTest.testSpacePath),
                 u"Type": u"Content",
                 u"Size": 41
             })
     self.assertEqual(
         service.read(u"{}_A1".format(StorageServiceTest.testSpacePath), 35,
                      6), b"zABCDE")
     mc.stop()
 def setUp(self):
     mc = Session((StorageServiceTest.addr, StorageServiceTest.port), None)
     mc.start()
     storage = mc.blockingInvoker(u"StorageService")
     if storage.exists(u"", StorageServiceTest.testSpacePath):
         storage.delete(u"", StorageServiceTest.testSpacePath)
     storage.createDirectory(u"", StorageServiceTest.testSpacePath)
     for i in range(1, 6):
         storage.createDirectory(
             u"", u"{}a{}".format(StorageServiceTest.testSpacePath, i))
     storage.createFile(u"",
                        u"{}_A1".format(StorageServiceTest.testSpacePath))
     storage.createFile(u"",
                        u"{}_A2".format(StorageServiceTest.testSpacePath))
     storage.write(u"", u"{}_A1".format(StorageServiceTest.testSpacePath),
                   b"1234567890abcdefghijklmnopqrstuvwxyz", 0)
     storage.write(u"", u"{}_A2".format(StorageServiceTest.testSpacePath),
                   b"0123456789", 0)
     mc.stop()
 def testWrite(self):
     mc = Session((StorageServiceTest.addr, StorageServiceTest.port), None)
     mc.start()
     service = StorageService(mc)
     service.write(u"{}_A1".format(StorageServiceTest.testSpacePath),
                   b"ABCDE", 10)
     self.assertEqual(
         service.metaData(u"{}_A1".format(
             StorageServiceTest.testSpacePath)), {
                 u"Name": u"_A1",
                 u"Path": u"{}_A1".format(StorageServiceTest.testSpacePath),
                 u"Type": u"Content",
                 u"Size": 36
             })
     self.assertEqual(
         service.readAsString(
             u"{}_A1".format(StorageServiceTest.testSpacePath), 0, 16),
         u"1234567890ABCDEf")
     self.assertEqual(
         service.readAllAsString(u"{}_A1".format(
             StorageServiceTest.testSpacePath)),
         u"1234567890ABCDEfghijklmnopqrstuvwxyz")
     service.write(u"{}_A1".format(StorageServiceTest.testSpacePath),
                   b"defghi", 39)
     self.assertEqual(
         service.metaData(u"{}_A1".format(
             StorageServiceTest.testSpacePath)), {
                 u"Name": u"_A1",
                 u"Path": u"{}_A1".format(StorageServiceTest.testSpacePath),
                 u"Type": u"Content",
                 u"Size": 45
             })
     self.assertEqual(
         service.readAsString(
             u"{}_A1".format(StorageServiceTest.testSpacePath), 35, 10),
         u"z\0\0\0defghi")
     self.assertEqual(
         service.readAsString(
             u"{}_A1".format(StorageServiceTest.testSpacePath), 0, 16),
         u"1234567890ABCDEf")
     mc.stop()
 def testElementListMetaData(self):
     mc = Session((StorageServiceTest.addr, StorageServiceTest.port), None)
     mc.start()
     testRoot = StorageService(mc).getElement(
         StorageServiceTest.testSpacePath)
     elements = testRoot.listElements(True)
     expected = [["_A1", "_A1", "Content"], ["_A2", "_A2", "Content"],
                 ["a1", "a1", "Collection"], ["a2", "a2", "Collection"],
                 ["a3", "a3", "Collection"], ["a4", "a4", "Collection"],
                 ["a5", "a5", "Collection"]]
     self.assertEqual(len(elements), len(expected))
     for i in range(0, len(expected)):
         exp = expected[i]
         res = elements[i]
         self.assertEqual(res.get("Name"), exp[0])
         self.assertEqual(res.get("Path"),
                          StorageServiceTest.testSpacePath + exp[1])
         self.assertEqual(res.get("Type"), exp[2])
     self.assertEqual(elements[0].get("Size"), 36)
     self.assertEqual(elements[1].get("Size"), 10)
     mc.stop()
 def testConnectionOfSession(self):
     # mc = Session((MessageTransportTest.addr, 10211), None)
     # self.assertRaises(ConnectionRefusedError, mc.start)
     mc = Session((MessageTransportTest.addr, MessageTransportTest.port), None)
     mc.start()
     mc.stop()
Beispiel #24
0
import sys
from Pydra import Message, ProtocolException, Session
import socket
import threading
import time
from Services.Storage import StorageService, HBTFileElement
import random
import math

if __name__ == '__main__':
    mc = Session(("192.168.25.27", 20102), None)
    mc.start()
    service = StorageService(mc)
    hbtFile = service.getElement('HBTChartTest.hbt').toHBTFileElement()
    hbtFile.initialize([["Column 1", HBTFileElement.BYTE],
                        ["Column 2", HBTFileElement.SHORT],
                        ["Column 3", HBTFileElement.INT],
                        ["Column 4", HBTFileElement.LONG],
                        ["Column 5", HBTFileElement.FLOAT],
                        ["Column 6", HBTFileElement.DOUBLE]])
    for i in range(0, 10):
        d1 = i
        d2 = i * i
        d3 = -i
        d4 = i * i * i
        d5 = math.sin(i)
        d6 = math.exp(i)
        hbtFile.appendRow([d1, d2, d3, d4, d5, d6])
    mc.stop()