Forum Discussion
baxatob that's a great info thanks,
I 100% believe that my code is wrong because of it am facing the issue i.e
In the Library Functions Unit the below Code .
def DB_Extraction():
AConnection = ADO.CreateADOConnection()
# Specify the connection string
AConnection.ConnectionString = "Provider=MSDASQL.1;" + \
"Data Source=Teacher_DB";
AConnection.LoginPrompt = False
AConnection.Open()
# Execute a simple query
RecSet = AConnection.Execute_('select name,code from demo')
RecSet.MoveFirst();
data_container = []
r= []
while not RecSet.EOF:
# rows1 = ""
rows = RecSet.Fields.Item["name"].Value
data_container.append(rows)
# rows = rows.append(",")
#rows.split(",")
#Log.Message(rows)
RecSet.MoveNext()
AConnection.Close()
Log.Message(str(data_container))
dbcount = len(data_container)
Log.Message("The Database Count of the Demography List is :"+str(dbcount))
ProjectSuite.Variables.AddVariable("Var11","String")
ProjectSuite.Variables.Var11 = str(data_container)
returnAnd in the TestScript Unit my testcase i.e
import Library def demog_Deal(): Library.DB_Extraction()
data_container = ProjectSuite.Variables.Var11 demograph =Aliases.Teachers_debug.frmMain.dxDockSite.TdxDockPanel2.frmListDealNav.TdxDockSiteAutoHideContainer.TdxDockPanel.frmFindDeal.FrameFindDeal1.gbxDealOptions.esggraph demograph.keys("[Hold]~[Down]") RCount =Aliases.Teachers_debug.TcxComboBoxPopupWindow.TcxExtLookupGrid.TcxGridSite.GridView.ViewData.RecordCount val=[] for i in range(0,RCount): demolst = Aliases.Teachers_debug.TcxComboBoxPopupWindow.TcxExtLookupGrid.TcxGridSite.GridView.ViewData.Records[i].DisplayTexts[0] val.append(demolst) Log.Message(str(val)) a=[]
c= set(val).union(set(data_container))
d=set(val).intersection(set(data_container))
a = c - d rowcount = RCount-1 Log.Message("The No of values in the Application List is :" +str(rowcount)) Log.Message("The Mismatch value is " +str(k)) Log.SaveResultsAs("C:\\Work\\Log8\\",lsHTML) ProjectSuite.Variables.RemoveVariable("Var11"
Normally I used use this
a=[]
c= set(val).union(set(data_container))
d=set(val).intersection(set(data_container))
a = c - d
To compare both values and print which are the mismatch values , but only in this test case the both set(val) and set(data_container) are showing as empty due to this all the values being displayed as mismatch values.
Can you please let me know .
Your should optimize your code.
First of all you don't need all of those conversions from list to string and back.
Let me show what you did in your code:
1. You have extracted a list data to data_container variable.
2. You have converted list to string and assign new string to some project variable var11
3. Then you have called var11 from another function. And finally you try to operate it as a list, but it's still the string! Of course you can revert the string back to the list, but it is not a trivial action.
Better if your DB_Extraction() method will return extracted data as is:
def DB_Extraction():
# extraction return data_container
And then you can call your method from another places:
import Library
def demog_Deal():
data_container = Library.DB_Extraction()
# other steps
- JackSparrow9 years agoFrequent Contributor
baxatob super thanks for the explanation. IT worked now