コード例 #1
0
ファイル: test_pcf.py プロジェクト: sremy/pymqi
    def test_mqcfif(self):
        """Test string filter MQCFIF.

        Also uses MQCFST, MQCFIN and MQCFIL as parameters
        """
        attrs = []  # type: List[pymqi.MQOpts]
        attrs.append(pymqi.CFST(Parameter=pymqi.CMQC.MQCA_Q_NAME, String=b'*'))
        attrs.append(
            pymqi.CFIN(Parameter=pymqi.CMQC.MQIA_Q_TYPE,
                       Value=pymqi.CMQC.MQQT_LOCAL))
        attrs.append(
            pymqi.CFIL(Parameter=pymqi.CMQCFC.MQIACF_Q_ATTRS,
                       Values=[
                           pymqi.CMQC.MQIA_CURRENT_Q_DEPTH,
                           pymqi.CMQC.MQCA_Q_DESC
                       ]))

        object_filters = []
        object_filters.append(
            pymqi.CFIF(Parameter=pymqi.CMQC.MQIA_CURRENT_Q_DEPTH,
                       Operator=pymqi.CMQCFC.MQCFOP_GREATER,
                       FilterValue=0))

        results = self.pcf.MQCMD_INQUIRE_Q(attrs, object_filters)

        self.assertTrue(results, 'Queue not found')
        for result in results:
            self.assertTrue(
                result[pymqi.CMQC.MQIA_CURRENT_Q_DEPTH] > 0,
                'Found Queue with depth {}'.format(
                    result[pymqi.CMQC.MQIA_CURRENT_Q_DEPTH]))
コード例 #2
0
ファイル: test_pcf.py プロジェクト: sremy/pymqi
    def test_mqcfbs(self):
        """Test MQCFBS PCF byte string parameter.

        Also uses MQCFIN and MQCFIL as parameters
        """
        attrs = []  # type: List[pymqi.MQOpts]
        attrs.append(
            pymqi.CFBS(Parameter=pymqi.CMQCFC.MQBACF_GENERIC_CONNECTION_ID,
                       String=b''))
        attrs.append(
            pymqi.CFIN(Parameter=pymqi.CMQCFC.MQIACF_CONN_INFO_TYPE,
                       Value=pymqi.CMQCFC.MQIACF_CONN_INFO_CONN))
        attrs.append(
            pymqi.CFIL(Parameter=pymqi.CMQCFC.MQIACF_CONNECTION_ATTRS,
                       Values=[pymqi.CMQCFC.MQIACF_ALL]))

        object_filters = []
        object_filters.append(
            pymqi.CFIF(Parameter=pymqi.CMQC.MQIA_APPL_TYPE,
                       Operator=pymqi.CMQCFC.MQCFOP_EQUAL,
                       FilterValue=pymqi.CMQC.MQAT_USER))

        results = self.pcf.MQCMD_INQUIRE_CONNECTION(attrs, object_filters)

        self.assertGreater(len(results), 0)
コード例 #3
0
ファイル: test_pcf.py プロジェクト: sremy/pymqi
    def test_mqcfsf(self):
        """Test string filter MQCFSF.

        Also uses MQCFST, MQCFIN and MQCFIL as parameters
        """
        attrs = []  # type: List[pymqi.MQOpts]
        attrs.append(pymqi.CFST(Parameter=pymqi.CMQC.MQCA_Q_NAME, String=b'*'))
        attrs.append(
            pymqi.CFIN(Parameter=pymqi.CMQC.MQIA_Q_TYPE,
                       Value=pymqi.CMQC.MQQT_LOCAL))
        attrs.append(
            pymqi.CFIL(Parameter=pymqi.CMQCFC.MQIACF_Q_ATTRS,
                       Values=[
                           pymqi.CMQC.MQIA_CURRENT_Q_DEPTH,
                           pymqi.CMQC.MQCA_Q_DESC
                       ]))

        object_filters = []
        object_filters.append(
            pymqi.CFSF(Parameter=pymqi.CMQC.MQCA_Q_DESC,
                       Operator=pymqi.CMQCFC.MQCFOP_LIKE,
                       FilterValue=b'IBM MQ*'))

        results = self.pcf.MQCMD_INQUIRE_Q(attrs, object_filters)

        self.assertTrue(results, 'Queue not found')
        for result in results:
            self.assertTrue(
                not result[pymqi.CMQC.MQCA_Q_DESC].startswith(b'MQ'),
                'Found Queue with description {}'.format(
                    result[pymqi.CMQC.MQCA_Q_DESC]))
            self.assertTrue(
                pymqi.CMQC.MQCA_Q_DESC in result,
                'Attribute {} is not returned'.format(
                    result[pymqi.CMQC.MQCA_Q_DESC]))
コード例 #4
0
ファイル: test_pcf.py プロジェクト: AlexandreYang/pymqi
    def test_arbitrary_message_with_mqcfil(self, value):
        """Test arbitrary message with MQCFIL."""
        message = pymqi.CFH(Version=pymqi.CMQCFC.MQCFH_VERSION_1,
                            Type=pymqi.CMQCFC.MQCFT_USER,
                            ParameterCount=1).pack()
        message = message + pymqi.CFIL(Parameter=1, Values=value).pack()

        queue = pymqi.Queue(
            self.qmgr, self.queue_name,
            pymqi.CMQC.MQOO_INPUT_AS_Q_DEF + pymqi.CMQC.MQOO_OUTPUT)

        put_md = pymqi.MD(Format=pymqi.CMQC.MQFMT_PCF)
        queue.put(message, put_md)

        get_opts = pymqi.GMO(Options=pymqi.CMQC.MQGMO_NO_SYNCPOINT +
                             pymqi.CMQC.MQGMO_FAIL_IF_QUIESCING,
                             Version=pymqi.CMQC.MQGMO_VERSION_2,
                             MatchOptions=pymqi.CMQC.MQMO_MATCH_CORREL_ID)
        get_md = pymqi.MD(MsgId=put_md.MsgId)  # pylint: disable=no-member
        message = queue.get(None, get_md, get_opts)
        queue.close()
        message = pymqi.PCFExecute.unpack(message)

        self.assertTrue(
            isinstance(message[0][1], list),
            'Returned value is not list: {}'.format(type(message[0][1])))

        self.assertTrue(
            len(message[0][1]) == len(value), 'List length is different!')

        for item in message[0][1]:
            self.assertTrue(item in value,
                            '{} value not in values list'.format(item))
            value.remove(item)
コード例 #5
0
ファイル: test_pcf.py プロジェクト: sremy/pymqi
    def test_mqcfsl(self, value):
        """Test MQCFSL PCF string list parameter.

        Also uses MQCFST and MQCFIN as parameters
        """
        attrs = []  # type: List[pymqi.MQOpts]
        attrs.append(
            pymqi.CFST(Parameter=pymqi.CMQC.MQCA_NAMELIST_NAME,
                       String='{}NAMELIST'.format(self.prefix).encode()))
        attrs.append(pymqi.CFSL(Parameter=pymqi.CMQC.MQCA_NAMES,
                                Strings=value))
        attrs.append(
            pymqi.CFIN(Parameter=pymqi.CMQCFC.MQIACF_REPLACE,
                       Value=pymqi.CMQCFC.MQRP_YES))

        try:
            self.pcf.MQCMD_CREATE_NAMELIST(attrs)
        except Exception:  # pylint: disable=broad-except
            self.fail('Exception occurs!')
        else:
            attrs = []
            attrs.append(
                pymqi.CFST(Parameter=pymqi.CMQC.MQCA_NAMELIST_NAME,
                           String='{}NAMELIST'.format(self.prefix).encode()))
            attrs.append(
                pymqi.CFIL(
                    Parameter=pymqi.CMQCFC.MQIACF_NAMELIST_ATTRS,
                    Values=[pymqi.CMQC.MQCA_NAMES,
                            pymqi.CMQC.MQIA_NAME_COUNT]))

            results = self.pcf.MQCMD_INQUIRE_NAMELIST(attrs)

            self.assertEqual(results[0][pymqi.CMQC.MQIA_NAME_COUNT],
                             len(value))

            if results[0][pymqi.CMQC.MQIA_NAME_COUNT] > 0:
                for item in results[0][pymqi.CMQC.MQCA_NAMES]:
                    item = item.strip()
                    self.assertTrue(item in value,
                                    '{} value not in values list'.format(item))
                    value.remove(item)

            attrs = []
            attrs.append(
                pymqi.CFST(Parameter=pymqi.CMQC.MQCA_NAMELIST_NAME,
                           String='{}NAMELIST'.format(self.prefix).encode()))
            self.pcf.MQCMD_DELETE_NAMELIST(attrs)