Subject: [pgAdmin4][RM3936] Feature tests failing intermittently for SQL editor related test cases

From: Aditya Toshniwal <[email-masked]>
Date: Mon, 28 Jan 2019 12:29:50 +0530

Hi Hackers,

Attached is the patch to fix failing SQL editor related feature tests.
The failure is occurring mostly because of send_keys function of selenium
which sometimes does not input the complete text. The change will use
Codemirror javascript object to set the text.

I have also added new args flag "--modules" which can be used after --pkg
where you can test a specific module file under the pkg. This is not so
useful for build but definitely helpful for the developers.

Kindly review.

-- 
Thanks and Regards,
Aditya Toshniwal
Software Engineer | EnterpriseDB Software Solutions | Pune
"Don't Complain about Heat, Plant a tree"

---

From: Dave Page <[email-masked]>
Date: Mon, 28 Jan 2019 11:31:19 +0000

Hi

On Mon, Jan 28, 2019 at 7:00 AM Aditya Toshniwal
<[email-masked]> wrote:
> The failure is occurring mostly because of send_keys function of selenium which sometimes does not input the complete text. The change will use Codemirror javascript object to set the text.
>
> I have also added new args flag "--modules" which can be used after --pkg where you can test a specific module file under the pkg. This is not so useful for build but definitely helpful for the developers.

One of the most common failures I see is failure to fill in the
details on the Add Server dialogue (it might type half of an entry,
then just hang). Should we get rid of all uses of send_keys?

-- 
Dave Page
Blog: http://pgsnake.blogspot.com
Twitter: @pgsnake

EnterpriseDB UK: http://www.enterprisedb.com
The Enterprise PostgreSQL Company

---

From: Aditya Toshniwal <[email-masked]>
Date: Mon, 28 Jan 2019 17:35:17 +0530

Hi Dave,

On Mon, Jan 28, 2019 at 5:01 PM Dave Page <[email-masked]> wrote:

> > The failure is occurring mostly because of send_keys function of
> selenium which sometimes does not input the complete text. The change will
> use Codemirror javascript object to set the text.
> >
> > I have also added new args flag "--modules" which can be used after
> --pkg where you can test a specific module file under the pkg. This is not
> so useful for build but definitely helpful for the developers.
>
Setting the text using javascript executor can be done. send_keys simulate
an actual person,  so if you try to set a disabled text box using
send_keys, it won't. Places where disabled fields doesn't matter, send_keys
can be removed.

---

From: Dave Page <[email-masked]>
Date: Mon, 28 Jan 2019 12:08:58 +0000

On Mon, Jan 28, 2019 at 12:05 PM Aditya Toshniwal
<[email-masked]> wrote:
> Setting the text using javascript executor can be done. send_keys simulate an actual person,  so if you try to set a disabled text box using send_keys, it won't. Places where disabled fields doesn't matter, send_keys can be removed.

Can't we just do something like:

if input.disabled == false:
  input.value = 'Foo';
else:
  raise exception ....

---

From: Aditya Toshniwal <[email-masked]>
Date: Mon, 28 Jan 2019 17:44:08 +0530

On Mon, Jan 28, 2019 at 5:39 PM Dave Page <[email-masked]> wrote:

> > Setting the text using javascript executor can be done. send_keys
> simulate an actual person,  so if you try to set a disabled text box using
I'll check if this can be done. Will get back.

---

From: Aditya Toshniwal <[email-masked]>
Date: Tue, 29 Jan 2019 19:06:12 +0530

Hi Hackers,

Attached is the updated patch. I have changed fill_input_by_field_name
function to use javascript to set values of text boxes and the selector is
changed from xpath to CSS with a :not(:disabled) clause. With this, test
case will fail if tried to set the value of a disabled input.

Kindly review.

---

From: Dave Page <[email-masked]>
Date: Tue, 29 Jan 2019 13:39:00 +0000

Akshay, can you look at this please?

On Tue, Jan 29, 2019 at 1:36 PM Aditya Toshniwal
<[email-masked]> wrote:
>
> Hi Hackers,
>
> Attached is the updated patch. I have changed fill_input_by_field_name function to use javascript to set values of text boxes and the selector is changed from xpath to CSS with a :not(:disabled) clause. With this, test case will fail if tried to set the value of a disabled input.
>
> Kindly review.
>
>
> On Mon, Jan 28, 2019 at 5:44 PM Aditya Toshniwal <[email-masked]> wrote:
>>
>>
>>

---

From: Akshay Joshi <[email-masked]>
Date: Tue, 29 Jan 2019 19:38:05 +0530

> Akshay, can you look at this please?

    Sure.

> >>> >> > I have also added new args flag "--modules" which can be used
> after --pkg where you can test a specific module file under the pkg. This
> is not so useful for build but definitely helpful for the developers.
> >>> >>

---

From: Akshay Joshi <[email-masked]>
Date: Wed, 30 Jan 2019 19:14:52 +0530

Hi Aditya

I have applied your patch but following test cases are failing consistently:

   - CopySelectedQueryResultsFeatureTest
   - QueryToolAutoCompleteFeatureTest

I have verified your patch on Mac OSX and Ubuntu. Chrome Version
71.0.3578.98

-- 
*Akshay Joshi*

*Sr. Software Architect *

*Phone: +91 20-3058-9517Mobile: +91 976-788-8246*

---

From: Aditya Toshniwal <[email-masked]>
Date: Mon, 4 Feb 2019 14:18:37 +0530

Hi Akshay,

I tried to simulate, but no luck. It works on my system :(

On Wed, Jan 30, 2019 at 7:15 PM Akshay Joshi <[email-masked]>
wrote:

> On Tue, Jan 29, 2019 at 7:38 PM Akshay Joshi <
> [email-masked]> wrote:
>
>>
>>
>>> >>> >> > The failure is occurring mostly because of send_keys function
>>> of selenium which sometimes does not input the complete text. The change
>>> will use Codemirror javascript object to set the text.
>>> >>> >> >

---

From: Akshay Joshi <[email-masked]>
Date: Tue, 5 Feb 2019 10:40:30 +0530

Hi Aditya

> I tried to simulate, but no luck. It works on my system :(

   I have tried and Feature test are failing randomly for each run. I have
verified it on OSX and Ubuntu both.

>
> On Wed, Jan 30, 2019 at 7:15 PM Akshay Joshi <
>>>> > Attached is the updated patch. I have changed
>>>> fill_input_by_field_name function to use javascript to set values of text
>>>> boxes and the selector is changed from xpath to CSS with a :not(:disabled)
>>>> clause. With this, test case will fail if tried to set the value of a
>>>> disabled input.
>>>> >
>>>> > Kindly review.
>>>> >
>>>> >

-- 
*Akshay Joshi*

---

From: Aditya Toshniwal <[email-masked]>
Date: Tue, 5 Feb 2019 10:42:18 +0530

Urgh. Will try to reproduce and explore possible causes of failure.

On Tue, Feb 5, 2019 at 10:40 AM Akshay Joshi <[email-masked]>
wrote:

>>>>> >>> > Setting the text using javascript executor can be done.
>>>>> send_keys simulate an actual person,  so if you try to set a disabled text
>>>>> box using send_keys, it won't. Places where disabled fields doesn't matter,
>>>>> send_keys can be removed.
>>>>> >>>

---

From: Khushboo Vashi <[email-masked]>
Date: Tue, 5 Feb 2019 10:48:41 +0530

On Tue, Feb 5, 2019 at 10:40 AM Akshay Joshi <[email-masked]>
wrote:

>> +1

---

From: Aditya Toshniwal <[email-masked]>
Date: Tue, 5 Feb 2019 17:27:58 +0530

Hi Hackers,

Attached is the updated patch to fix possible causes of failure.
Kindly review (fingers crossed)

On Tue, Feb 5, 2019 at 10:48 AM Khushboo Vashi <
[email-masked]> wrote:

>
>
> On Tue, Feb 5, 2019 at 10:40 AM Akshay Joshi <
>>    I have tried and Feature test are failing randomly for each run. I
>> have verified it on OSX and Ubuntu both.
>>
>>>
>>> +1
>
>>>>>> >>> >> > The failure is occurring mostly because of send_keys
>>>>>> function of selenium which sometimes does not input the complete text. The
>>>>>> change will use Codemirror javascript object to set the text.
>>>>>> >>> >> >
>>>>>> >>> >> > I have also added new args flag "--modules" which can be
>>>>>> used after --pkg where you can test a specific module file under the pkg.
>>>>>> This is not so useful for build but definitely helpful for the developers.
>>>>>> >>> >>

---

From: Akshay Joshi <[email-masked]>
Date: Wed, 6 Feb 2019 11:10:41 +0530

Hi Aditya

Some improvement, 1 test case is still failing but not consistent. I have
run the test cases 3 times out of which one time all runs successfully.

-- 
*Akshay Joshi*