Random errors when matching strings [duplicate] - karate

This question already has an answer here:
Karate - match fails for inline array
(1 answer)
Closed 1 year ago.
Usually matching works just fine but I've had weird random matching errors recently :
$.userInfo | not equal | match failed for name: 'phone' (MAP:MAP)
{"givenName":"##string","familyName":"##string","phone":"##string"}
{"givenName":"Andreas","familyName":"Conroy","phone":"+19515554384"}
$.userInfo.phone | not equal (STRING:STRING)
'##string'
'+19515554384'
How is '+19515554384' not a string ?
Thanks

Sounds like you have your "expected" vs "actual" data mixed up. Here below are 2 lines you can cut and paste and verify that it works:
* def response = {"givenName":"Andreas","familyName":"Conroy","phone":"+19515554384"}
* match response == {"givenName":"##string","familyName":"##string","phone":"##string"}

Related

Writing to csv makes column without being written [duplicate]

This question already has an answer here:
Pandas to_csv call is prepending a comma
(1 answer)
Closed 1 year ago.
I am trying to do math on a specific cell in a csv file with pandas, but whenever I try to do it, it adds a column on the left that looks like
,
1,value,value
2,value,value
3,value,value
4,value,value
5,value,value
So if I run it multiple times it looks like
,
1,1,1,value,value
2,2,2,value,value
3,3,3,value,value
4,4,4,value,value
5,5,5,value,value
How do I make it not do this??
My code is: add_e_trial = equations_reader.at[bank_indexer_addbalance, 1] = reciever_amount
Whenever you do a df.to_csv, include index=False. The left most column is the index of the dataset
df.to_csv(index=False)

how to put assertion on a response value present in JSON? [duplicate]

This question already has an answer here:
Error using DBUtils in first scenario [duplicate]
(1 answer)
Closed 1 year ago.
I have a test-case like this in which I'm verifying the total number of rows - I have referred the below page and tried this solution, but seems that it is not working. I want to check whether my noOfRows is greater than 2.
This is the response I'm getting for printing
Total number of rows [
{
"1": 27
}
]
* def noOfRows = result
* print 'Total number of rows ',result
* assert noOfRows == { "1": '#? _ > 2' }
If result is an array, you can do this:
* def result = [1, 2, 3]
* assert result.length > 2
What the readRows returns has nothing to do with Karate, so please work with someone who knows Java well if required: https://stackoverflow.com/a/52078427/143475
Also it looks like you are on an old version of Karate, so upgrade. And if still stuck, follow this process: https://github.com/intuit/karate/wiki/How-to-Submit-an-Issue

How can I match response X or Y? [duplicate]

This question already has an answer here:
Is it possible to use karate 'match' inside conditional statement?
(1 answer)
Closed 2 years ago.
I wanted to match my response is equal to X or Y. I saw many json specified samples but I couldn't utilize those samples. I have a string that I gathered from response and I want to match it with X or Y. It should be ok if it is equal to X or Y.
My reference language value that I defined above of the code = profile_language The language value that I defined from json response = response_content_language And match response_content_language contains ('en',profile_language)
Language value should be profile_language or if it is not then it should be value as 'en'.
And match response_content_language contains ('en',profile_language)
I took error as I expected.
You could use something like
* def table = [ "en", #(profile_language) ]
And match table contains response_content_language

Oracle PL/SQL number to_char ignores 0's even when decimal part exist [duplicate]

This question already has an answer here:
Fetching value from a number column removes 0 before decimal
(1 answer)
Closed 5 months ago.
Im using the following code to convert a number(38,2) to the format "XXX.XXX.XXX,XX":
TO_CHAR(number, '999G999G999G999G999G999G999D99')
Although, when the number is 0 or 0.XX the 0 is eaten up :
Input: 0
Result: ",00"
Expected Result: "0,00"
Input: 0.23
Result: ",23"
Expected Result: "0,23"
Why does this happen, is there a way of solving this without manipulating the result string ?
Use 0 instead of 9
TO_CHAR(0.00, '999G999G999G999G999G999G990D99')
0 ensures that if there is no digit in that place it'll display 0.

Convert String into digit in SQL [duplicate]

This question already has answers here:
Converting words to numbers in PHP
(6 answers)
Closed 8 years ago.
How to convert any string into digit in SQL without CASE and Decode function.
eg. THREE to 3
FOUR to 4
FIVE to 5
SIX to 6
Range is not decided.. can be vary upto N.
Well, I'm not sure whether this is what you need, but what about defining a table, say digits, like this:
digit: text | value: int
------------+-----------
one | 1
two | 2
three | 3
etc.
Then use a query, for example, like this one:
SELECT value FROM digits WHERE digit = 'FIVE'
Sure, it's pretty weird (to say the least), but nonetheless the use of CASE is avoided.