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]))
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)
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]))
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)
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)