Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # -*- coding: utf8 -*-
- """
- ZDN (Information on employees) declaration
- """
- from net.grinder.script import Test
- from net.grinder.script.Grinder import grinder
- from net.grinder.plugin.http import HTTPPluginControl, HTTPRequest
- from HTTPClient import NVPair
- connectionDefaults = HTTPPluginControl.getConnectionDefaults()
- httpUtilities = HTTPPluginControl.getHTTPUtilities()
- import common
- from net.grinder.common import GrinderException
- import re,random
- class ZDNException(common.EDSTestException):
- """
- ZDN summs exception
- """
- class ZDNDeclaration(common.EDSTestCase):
- def requestNewDeclaration(self):
- # Expecting 302 'Object moved'
- headers1= \
- ( NVPair( 'Accept', 'text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5' ),
- NVPair( 'Referer', 'https://www2.vid.gov.lv/eds/logon/main.asp' ), )
- request501 = HTTPRequest( url=common.url, headers=headers1 )
- request501 = Test( 50011, 'ZZDN - GET new.asp ' ).wrap( request501 )
- result = request501.GET( '/eds/logon/new.asp' )
- self.token_sel_pers = httpUtilities.valueFromHiddenInput( 'sel_pers' )
- self.token_sel_pers_nos = httpUtilities.valueFromHiddenInput( 'sel_pers_nos' )
- #grinder.logger.output("\n\n>>>SP: %s, SPN: %s" % (self.token_sel_pers,self.token_sel_pers_nos))
- headers2= \
- ( NVPair( 'Accept', 'text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5' ),
- NVPair( 'Referer', 'https://www2.vid.gov.lv/eds/logon/new.asp' ), )
- request301 = HTTPRequest(url=common.url, headers=headers2)
- request301 = Test(50012, 'POST edit.asp').wrap(request301)
- result = request301.POST('/eds/logon/edit.asp',
- ( NVPair('nmr', self.token_sel_pers),
- NVPair('nis_dok', '990000063'),
- NVPair('iev_tips', '1'), ),
- ( NVPair('Content-Type', 'application/x-www-form-urlencoded'), ))
- request302 = HTTPRequest(url=common.url, headers=headers2)
- request302 = Test(50013, 'GET /eds/logon/_zdn.asp').wrap(request302)
- result=request302.GET('/eds/logon/_zdn.asp')
- self.token_UniPage_ID = \
- httpUtilities.valueFromHiddenInput('UniPage_ID') # '30.11.2007 12:16:44'
- self.token_CurrentPage = \
- httpUtilities.valueFromHiddenInput('CurrentPage') # '1'
- self.token_dok_id = \
- httpUtilities.valueFromHiddenInput('dok_id') # '-1'
- self.token_Status = \
- httpUtilities.valueFromHiddenInput('Status') # '-1'
- soup=common.soupup( result.getText() )
- self.izpilditajs=soup.first("input", {"name":"izpilditajs"}).getattr('value')
- self.nmr_kods=soup.first( "input", {"name":"nmr_kods"} ).getattr( "value" )
- self.isais_nosauk=soup.first( "input", {"name":"isais_nosauk"} ).getattr( "value" )
- self.datums_iesn=soup.first( "input", {"name":"datums_iesn"} ).getattr( "value" )
- return result
- def _simulateAjaxNameSubstitution(self,pers_kods):
- """
- Imitate ajax request to db to auto-fill person's name
- """
- headers9= \
- ( NVPair('Accept', 'text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5'),
- NVPair('Referer', 'https://www2.vid.gov.lv/eds/logon/_ddz_p.asp'), )
- request701 = HTTPRequest(url=common.url, headers=headers9)
- request701 = Test(50021, 'GET _zdn_sql.asp.asp').wrap(request701)
- result = request701.GET(
- '/eds/logon/_zdn_sql.asp' +
- '?FieldIndex=1&FieldCount=1&lprc=0&rnd=%i&p_num=%s' % (random.randint(1,1000),pers_kods))
- #print "\n>>>" + ":".join(dir(result))
- if result.getStatusCode()!=200:
- raise ZDNException("40021 - Fetching ajax value has failed")
- def submitDeclaration(self,count=10):
- partners=self._generateTaxpayers(count)
- for i in partners:
- self._simulateAjaxNameSubstitution(i[0])
- data=[]
- for i in range(1,count+1):
- person=partners[i-1]
- #salary=random.randint()
- #print "\n>>>" +str(person)
- for x in (
- NVPair('pers_kods_%i' % i, person[0]),
- NVPair('datums_dzim_%i' % i, ''),
- NVPair('uzv_vards_%i' % i, person[1].encode('cp1257')),
- NVPair('datums_izm_%i' % i, '01.10.2007'),
- NVPair('izm_kods_%i' % i, '40'),
- ):
- data.append(x)
- for x in (
- NVPair('isais_nosauk', self.isais_nosauk),
- NVPair('nmr_kods', self.nmr_kods),
- NVPair('izpilditajs', self.izpilditajs),
- NVPair('telef', '+371-67038017'),
- NVPair('vaditajs', 'Laimis Racenajs'),
- NVPair('GoToPage', '1'),
- NVPair('UniPage_ID', self.token_UniPage_ID),
- NVPair('CurrentPage', self.token_CurrentPage),
- NVPair('RecordsPerPage', '10'),
- NVPair('Status', self.token_Status),
- NVPair('datums_iesn', self.datums_iesn),
- NVPair('dok_id', self.token_dok_id),
- # NVPair('taks_no', '01.10.2007'),
- # NVPair('taks_lidz', '31.10.2007'),
- NVPair('Action', 'Submit'),
- ): data.append(x)
- headers9= \
- ( NVPair('Accept', 'text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5'),
- NVPair('Referer', 'https://www2.vid.gov.lv/eds/logon/_zdn.asp'), )
- request801 = HTTPRequest(url=common.url, headers=headers9)
- request801 = Test(50032, '50032 - Submit declaration POST /eds/logon/_zdn2.asp').wrap(request801)
- result = request801.POST(
- '/eds/logon/_zdn2.asp',
- data,
- ( NVPair('Content-Type', 'application/x-www-form-urlencoded'), )
- )
- if not (result.getStatusCode()==302 and result.getHeader('Location')=='main.asp'):
- txt=request801.GET('/eds/logon/'+result.getHeader('Location')).getText()
- maybeError=common.soupup(txt).first("frame",{'name':'show'})
- if maybeError:
- txt=request801.GET("/eds/logon/"+maybeError.getattr('src'))
- #f=open('/tmp/out.html',"w")
- #f.write(txt)
- #f.close()
- def __call__(self):
- self.login(self.getNextLegalEntity(), 'demo')
- self.requestNewDeclaration()
- self.submitDeclaration()
- self.signDeclaration()
- self.logout()
- re1=re.compile("Deklar.cija : Zi.as par darba ..m.jiem")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement