Пример #1
0
    def _test(self):
        # ----------------
        # API test
        newDocs = []
        so1 = ImportDocumentTuple(key="doc1key",
                                  modelSetKey="testModel",
                                  documentTypeKey="objectType1",
                                  importGroupHash='test load',
                                  document={
                                      "name":
                                      "134 Ocean Parade, Circuit breaker 1",
                                      "alias": "SO1ALIAS",
                                      "propStr": "Test Property 1",
                                      "propNumArr": [1, 2, 4, 5, 6],
                                      "propStrArr":
                                      ["one", "two", "three", "four"]
                                  })

        newDocs.append(so1)
        so2 = ImportDocumentTuple(key="doc2key",
                                  modelSetKey="testModel",
                                  documentTypeKey="objectType2",
                                  importGroupHash='test load',
                                  document={
                                      "name":
                                      "69 Sheep Farmers Rd Sub TX breaker",
                                      "alias":
                                      "SO2ALIAS",
                                      "propStr":
                                      "Test Property 1",
                                      "propNumArr": [7, 8, 9, 10, 11],
                                      "propStrArr":
                                      ["five", "siz", "seven", "eight"]
                                  })

        newDocs.append(so2)

        d = Payload(tuples=newDocs).toEncodedPayloadDefer()
        d.addCallback(self._api.createOrUpdateDocuments)
        d.addErrback(vortexLogFailure, logger, consumeError=True)
Пример #2
0
    def pushAction(self,
                   tupleAction: TupleActionABC,
                   additionalFilt=None) -> Deferred:
        """ Push Action

        This pushes the action, either locally or to the server, depending on the
        implementation.

        If pushed locally, the promise will resolve when the action has been saved.
        If pushed directly to the server, the promise will resolve when the server has
        responded.

        :param tupleAction The tuple action to send to the remote end
        :param additionalFilt: Any extra filt that may be required to send with the
                payload.
        """
        filt = copy(self._filt)
        if additionalFilt:
            filt.update(additionalFilt)

        d = Payload(filt=filt, tuples=[tupleAction]).makePayloadEnvelopeDefer()
        d.addCallback(lambda payloadEnvelope: PayloadResponse(
            payloadEnvelope, destVortexName=self._destVortexName))

        # Convert the data to TupleAction
        d.addCallback(
            lambda payloadEnvelope: payloadEnvelope.decodePayloadDefer())
        d.addCallback(lambda payload: payload.tuples)
        return d
Пример #3
0
    def _test(self):
        # ----------------
        # API test
        searchObjects = []
        so1 = ImportSearchObjectTuple(
            key="so1key",
            fullKeywords={},
            partialKeywords={
                "name": "134 Ocean Parade, Circuit breaker 1",
                "alias": "SO1ALIAS"
            }
        )

        so1.routes.append(ImportSearchObjectRouteTuple(
            importGroupHash="importHash1",
            routeTitle="SO1 Route1",
            routePath="/route/for/so1"
        ))

        so1.routes.append(ImportSearchObjectRouteTuple(
            importGroupHash="importHash2",
            routeTitle="SO1 Route2",
            routePath="/route/for/so2"
        ))

        searchObjects.append(so1)
        so2 = ImportSearchObjectTuple(
            key="so2key",
            fullKeywords={},
            partialKeywords={
                "name": "69 Sheep Farmers Rd Sub TX breaker",
                "alias": "SO2ALIAS"
            }
        )

        so2.routes.append(ImportSearchObjectRouteTuple(
            importGroupHash="importHash1",
            routeTitle="SO2 Route1",
            routePath="/route/for/so2/r2"
        ))

        so2.routes.append(ImportSearchObjectRouteTuple(
            importGroupHash="importHash2",
            routeTitle="SO2 Route2",
            routePath="/route/for/so2/r2"
        ))

        searchObjects.append(so2)

        d = Payload(tuples=searchObjects).toEncodedPayloadDefer()
        d.addCallback(self._api.importSearchObjects)
        d.addErrback(vortexLogFailure, logger, consumeError=True)

        searchObjects = []
        # Try an update of the object, it should add to the props
        so1v2 = ImportSearchObjectTuple(key="so1key",
                                        fullKeywords={},
                                        partialKeywords={"additional": "ADMS"})
        searchObjects.append(so1v2)

        # This should do nothing
        so2v2 = ImportSearchObjectTuple(
            key="so2key",
            fullKeywords=None,
            partialKeywords=None,
            objectType='Equipment'
        )
        searchObjects.append(so2v2)
        searchObjects.append(so1v2)

        # This should do nothing
        so3v2 = ImportSearchObjectTuple(
            key="so3key",
            fullKeywords=None,
            partialKeywords=None,
            objectType='Job'
        )
        searchObjects.append(so3v2)

        d = Payload(tuples=searchObjects).toEncodedPayloadDefer()
        d.addCallback(self._api.importSearchObjects)
        d.addErrback(vortexLogFailure, logger, consumeError=True)