Пример #1
0
 def test_getTheRpc(self):
     query = VistaSelect()
     query.file = '410'
     #        query.fields = '.01;3;4;16;17;18;19;20;21;22;51'
     #        query.index = 'C'
     #        query.frum = '506-13-1-98'
     #        query.part = '506-13-1-99'
     #        query.screen = 'I $P(^(0),U,21)="506-13-1-99"'
     query.identifier =\
     'S X=$$FCPBAL^PRC0D(506,99,13,2) ' +\
     'S Y=$$FCPBAL^PRC0D(506,99,13,1) ' +\
     'D EN^DDIOL(X_U_Y)'
     query._prepare()
     h = hashlib.sha224(query.rpc).hexdigest()
     x = 0
Пример #2
0
def __get_vista_data(cxn, cp_nbr, fy, qtr):
    query = VistaSelect()
    query.file = '410'
    query.fields = '.01;1;3;22;23;24;25;25.5;27;451'
    query.index = 'RB'
    query.frum = '{}-{}-{}-'.format(get_fiscal_start_date(fy, qtr), cxn.site_id, cp_nbr)
    query.part = query.frum
    query.identifier = ''.join(
        [
            'S X=$S($P(^(4),U,10)]"":"Y",1:"N") ',
            'S Y=$S($P(^(7),U,6)]"":"Y",1:"N") ',
            'S Z=$P(^(0),"-")_"-"_$P(^(4),U,5) ',
            'S Z=$O(^PRC(442,"B",Z,0)) ',
            'S Z1=$S(+Z=0:"X",$P($G(^PRC(442,Z,0)),U,2)=25:$P(^(7),U,2),1:"N") ',
            'S Z2=$S(+Z\'=0:$P($$FP^PRCH0A(Z),U,2),1:"X")',
            'D EN^DDIOL(X_U_Y_U_Z1_U_Z2)'
        ]
    )
    return query.find(cxn)
Пример #3
0
class TestVistaSelect(unittest.TestCase):

    def setUp(self):
        self.query = VistaSelect()

    def test_set_file(self):
        self.query.file = '200'
        self.assertEqual('200', self.query.file)

    def test_set_iens(self):
        with self.assertRaises(VistaException) as context:
            self.query.iens = 'a'
        e = context.exception
        self.assertEqual('Invalid IENS', e.message)

        with self.assertRaises(VistaException) as context:
            self.query.iens = '67,,'
        e = context.exception
        self.assertEqual('Invalid IENS', e.message)

        with self.assertRaises(VistaException) as context:
            self.query.iens = ',,67,'
        e = context.exception
        self.assertEqual('Invalid IENS', e.message)

        with self.assertRaises(VistaException) as context:
            self.query.iens = '67,,4,'
        e = context.exception
        self.assertEqual('Invalid IENS', e.message)

        self.query.iens = '67'
        self.assertEqual(',67,', self.query.iens)

        self.query.iens = ',67'
        self.assertEqual(',67,', self.query.iens)

        self.query.iens = ',67,'
        self.assertEqual(',67,', self.query.iens)

        self.query.iens = '67,44'
        self.assertEqual(',67,44,', self.query.iens)

        self.query.iens = ',67,44'
        self.assertEqual(',67,44,', self.query.iens)

        self.query.iens = '67,44,'
        self.assertEqual(',67,44,', self.query.iens)

        self.query.iens = ',67,44'
        self.assertEqual(',67,44,', self.query.iens)

    def test_set_fields(self):
        self.query.fields = ''
        self.assertEqual('@', self.query.fields)

        self.query.fields = '@'
        self.assertEqual('@', self.query.fields)

        self.query.fields = '.01;2;4;5;.141;8;9;11;29'
        self.assertEqual('@;.01;2;4;5;.141;8;9;11;29', self.query.fields)

        self.query.fields = '@;.01;2;4;5;.141;8;9;11;29'
        self.assertEqual('@;.01;2;4;5;.141;8;9;11;29', self.query.fields)

    def test_set_flags(self):
        self.query.flags = None
        self.assertEquals('IP', self.query.flags)

        self.query.flags = ''
        self.assertEqual('IP', self.query.flags)

        with self.assertRaises(VistaException) as context:
            self.query.flags = 'I'
        e = context.exception
        self.assertEqual('Current version does packed queries only', e.message)

        self.query.flags = 'BIP'
        self.assertEqual('BIP', self.query.flags)

    def test_prepare_param_list(self):
        self.query.file = '200'
        self.query.fields = '.01;2;4;5;.141;8;9;11;29'
        self.query.number = 1
        self.query.frum = '546'

        expected = [
            ('"FILE"', '200'),
            ('"FIELDS"', '@;.01;2;4;5;.141;8;9;11;29'),
            ('"FLAGS"', 'IP'),
            ('"MAX"', '1'),
            ('"FROM"', '545'),
            ('"XREF"', '#')
        ]
        self.query._prepare_param_list()
        self.assertEqual(expected, self.query.param_list)

    def test_prepare(self):
        self.query.file = '200'
        self.query.fields = '.01;2;4;5;.141;8;9;11;29'
        self.query.number = 1
        self.query.frum = '546'

        expected = "[XWB]11302\x051.108\x0ADDR LISTER52006\"FILE\"003200t008\"FIELDS\"026@;.01;2;4;5;.141;8;9;11;29t007\"FLAGS\"002IPt005\"MAX\"0011t006\"FROM\"003545t006\"XREF\"001#f\x04"

        self.query._prepare()
        self.assertEqual(expected, self.query.rpc)

    def test_load(self):
        response = "[Misc]\r\nMORE^546^546^\r\n[MAP]\r\nIEN^.01I^2I^4I^5I^.141I^8I^9I^11I^29I\r\n[BEGIN_diDATA]\r\n546^ZZPROGRAMMER,NINE^@Jy$9BO\'9iCm#:x*p:\'E^F^^^2^666948848^tHffxTgZ)<4~.7`EUx}j^1043\r\n[END_diDATA]"
        expected = [
            ['546','ZZPROGRAMMER,NINE',"@Jy$9BO'9iCm#:x*p:'E",'F','','','2','666948848',"tHffxTgZ)<4~.7`EUx}j",'1043']
        ]
        actual = self.query._load(response)
        self.assertEqual(expected, actual)
        self.assertEqual(expected, self.query.records)

    def test_getTheRpc(self):
        query = VistaSelect()
        query.file = '410'
        #        query.fields = '.01;3;4;16;17;18;19;20;21;22;51'
        #        query.index = 'C'
        #        query.frum = '506-13-1-98'
        #        query.part = '506-13-1-99'
        #        query.screen = 'I $P(^(0),U,21)="506-13-1-99"'
        query.identifier =\
        'S X=$$FCPBAL^PRC0D(506,99,13,2) ' +\
        'S Y=$$FCPBAL^PRC0D(506,99,13,1) ' +\
        'D EN^DDIOL(X_U_Y)'
        query._prepare()
        h = hashlib.sha224(query.rpc).hexdigest()
        x = 0
Пример #4
0
 def setUp(self):
     self.query = VistaSelect()