ldtp/ldtp2

Test examples/gcalctool.py fails, both locally and on Travis CI

richelbilderbeek opened this issue · 7 comments

When I run python gcalctool.py the tests fail:

richel@lubuntu:~/GitHubs/ldtp2/examples$ python gcalctool.py 
/usr/local/lib/python2.7/dist-packages/ldtpd/core.py:29: PyGIWarning: Wnck was imported without specifying a version first. Use gi.require_version('Wnck', '3.0') before import to ensure that the right version gets loaded.
  from gi.repository import Wnck as wnck
/usr/lib/python2.7/dist-packages/pyatspi/Accessibility.py:41: Warning: g_object_unref: assertion 'G_IS_OBJECT (object)' failed
  len=self.get_child_count()
EE
======================================================================
ERROR: testInteraction (__main__.WidgetTestCase)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "gcalctool.py", line 30, in setUp
    self.tearDown()
  File "gcalctool.py", line 34, in tearDown
    ldtp.selectmenuitem('frmCalculator*', 'mnuQuit')
  File "/usr/local/lib/python2.7/dist-packages/ldtp/client.py", line 75, in __call__
    return self.__send(self.__name, args)
  File "/usr/lib/python2.7/xmlrpclib.py", line 1602, in __request
    verbose=self.__verbose
  File "/usr/local/lib/python2.7/dist-packages/ldtp/client.py", line 198, in request
    raise LdtpExecutionError(e.faultString.encode('utf-8'))
LdtpExecutionError: Unable to find window "frmCalculator*"

======================================================================
ERROR: testViews (__main__.WidgetTestCase)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "gcalctool.py", line 30, in setUp
    self.tearDown()
  File "gcalctool.py", line 34, in tearDown
    ldtp.selectmenuitem('frmCalculator*', 'mnuQuit')
  File "/usr/local/lib/python2.7/dist-packages/ldtp/client.py", line 75, in __call__
    return self.__send(self.__name, args)
  File "/usr/lib/python2.7/xmlrpclib.py", line 1602, in __request
    verbose=self.__verbose
  File "/usr/local/lib/python2.7/dist-packages/ldtp/client.py", line 198, in request
    raise LdtpExecutionError(e.faultString.encode('utf-8'))
LdtpExecutionError: Unable to find window "frmCalculator*"

----------------------------------------------------------------------
Ran 2 tests in 63.664s

When I did sudo apt-get install gcalctool, I got the hint to install gnome-calculator.

May it be that all that needs to be changed is that instead of gcalctool, gnome-calculator is called in the gcalctool.py script?

I will

  • Check as such
  • Reproduce on Travis

Test fails on my local computer (I use Lubuntu 16.10):

  • Copied examples/gcalctool.py to examples/gnome-calculator.py
  • In examples/gnome-calculator.py, replaced gcalctool by gnome-calculator
  • Ran using python gnome-calculator.py

This is what I then saw:

2017-02-19-105344_1600x1200_scrot

This is the output I had:

richel@lubuntu:~/GitHubs/ldtp2/examples$ python gnome-calculator.py 
/usr/local/lib/python2.7/dist-packages/ldtpd/core.py:29: PyGIWarning: Wnck was imported without specifying a version first. Use gi.require_version('Wnck', '3.0') before import to ensure that the right version gets loaded.
  from gi.repository import Wnck as wnck
/usr/lib/python2.7/dist-packages/pyatspi/Accessibility.py:41: Warning: g_object_unref: assertion 'G_IS_OBJECT (object)' failed
  len=self.get_child_count()

(gnome-calculator:4852): Gtk-WARNING **: Theme parsing error: gtk-lubuntu.css:66:13: The :insensitive pseudo-class is deprecated. Use :disabled instead.

(gnome-calculator:4852): Gtk-WARNING **: Theme parsing error: gtk-lubuntu.css:97:29: The :insensitive pseudo-class is deprecated. Use :disabled instead.

(gnome-calculator:4852): Gtk-WARNING **: Theme parsing error: gtk-lubuntu.css:98:29: The :insensitive pseudo-class is deprecated. Use :disabled instead.

(gnome-calculator:4852): Gtk-WARNING **: Theme parsing error: gtk-lubuntu.css:104:39: The :insensitive pseudo-class is deprecated. Use :disabled instead.

(gnome-calculator:4852): Gtk-WARNING **: Theme parsing error: gtk-lubuntu.css:107:39: The :insensitive pseudo-class is deprecated. Use :disabled instead.

(gnome-calculator:4852): Gtk-WARNING **: Theme parsing error: gtk-lubuntu.css:158:33: The :focused pseudo-class is deprecated. Use :focus instead.

(gnome-calculator:4852): Gtk-WARNING **: Theme parsing error: gtk-lubuntu.css:174:38: The :insensitive pseudo-class is deprecated. Use :disabled instead.

(gnome-calculator:4852): Gtk-WARNING **: Theme parsing error: gtk-lubuntu.css:175:40: The :insensitive pseudo-class is deprecated. Use :disabled instead.

(gnome-calculator:4852): Gtk-WARNING **: Theme parsing error: gtk-lubuntu.css:176:53: The :insensitive pseudo-class is deprecated. Use :disabled instead.

(gnome-calculator:4852): Gtk-WARNING **: Theme parsing error: gtk-lubuntu.css:177:55: The :insensitive pseudo-class is deprecated. Use :disabled instead.

(gnome-calculator:4852): Gtk-WARNING **: Theme parsing error: gtk-lubuntu.css:178:53: The :insensitive pseudo-class is deprecated. Use :disabled instead.

(gnome-calculator:4852): Gtk-WARNING **: Theme parsing error: gtk-lubuntu.css:179:55: The :insensitive pseudo-class is deprecated. Use :disabled instead.

(gnome-calculator:4852): Gtk-WARNING **: Theme parsing error: gtk-lubuntu.css:180:48: The :insensitive pseudo-class is deprecated. Use :disabled instead.

(gnome-calculator:4852): Gtk-WARNING **: Theme parsing error: gtk-lubuntu.css:181:50: The :insensitive pseudo-class is deprecated. Use :disabled instead.

(gnome-calculator:4852): Gtk-WARNING **: Theme parsing error: gtk-lubuntu.css:182:44: The :insensitive pseudo-class is deprecated. Use :disabled instead.

(gnome-calculator:4852): Gtk-WARNING **: Theme parsing error: gtk-lubuntu.css:183:46: The :insensitive pseudo-class is deprecated. Use :disabled instead.

(gnome-calculator:4852): Gtk-WARNING **: Theme parsing error: gtk-lubuntu.css:184:52: The :insensitive pseudo-class is deprecated. Use :disabled instead.

(gnome-calculator:4852): Gtk-WARNING **: Theme parsing error: gtk-lubuntu.css:185:54: The :insensitive pseudo-class is deprecated. Use :disabled instead.

(gnome-calculator:4852): Gtk-WARNING **: Theme parsing error: gtk-lubuntu.css:186:52: The :insensitive pseudo-class is deprecated. Use :disabled instead.

(gnome-calculator:4852): Gtk-WARNING **: Theme parsing error: gtk-lubuntu.css:187:54: The :insensitive pseudo-class is deprecated. Use :disabled instead.

(gnome-calculator:4852): Gtk-WARNING **: Theme parsing error: gtk-lubuntu.css:188:47: The :insensitive pseudo-class is deprecated. Use :disabled instead.

(gnome-calculator:4852): Gtk-WARNING **: Theme parsing error: gtk-lubuntu.css:189:49: The :insensitive pseudo-class is deprecated. Use :disabled instead.

(gnome-calculator:4852): Gtk-WARNING **: Theme parsing error: gtk-lubuntu.css:190:21: The :insensitive pseudo-class is deprecated. Use :disabled instead.

(gnome-calculator:4852): Gtk-WARNING **: Theme parsing error: gtk-lubuntu.css:191:23: The :insensitive pseudo-class is deprecated. Use :disabled instead.

(gnome-calculator:4852): Gtk-WARNING **: Theme parsing error: gtk-lubuntu.css:196:34: The :insensitive pseudo-class is deprecated. Use :disabled instead.

(gnome-calculator:4852): Gtk-WARNING **: Theme parsing error: gtk-lubuntu.css:286:15: The 'icon-shadow' property has been renamed to '-gtk-icon-shadow'

(gnome-calculator:4852): Gtk-WARNING **: Theme parsing error: gtk-lubuntu.css:309:15: The 'icon-shadow' property has been renamed to '-gtk-icon-shadow'

(gnome-calculator:4852): Gtk-WARNING **: Theme directory  imported-Humanity/192 of theme Lubuntu has no size field

EE

Note the EE here, that I assume are key presses.

(gnome-calculator:4871): Gtk-WARNING **: Theme parsing error: gtk-lubuntu.css:66:13: The :insensitive pseudo-class is deprecated. Use :disabled instead.

(gnome-calculator:4871): Gtk-WARNING **: Theme parsing error: gtk-lubuntu.css:97:29: The :insensitive pseudo-class is deprecated. Use :disabled instead.

(gnome-calculator:4871): Gtk-WARNING **: Theme parsing error: gtk-lubuntu.css:98:29: The :insensitive pseudo-class is deprecated. Use :disabled instead.

(gnome-calculator:4871): Gtk-WARNING **: Theme parsing error: gtk-lubuntu.css:104:39: The :insensitive pseudo-class is deprecated. Use :disabled instead.

(gnome-calculator:4871): Gtk-WARNING **: Theme parsing error: gtk-lubuntu.css:107:39: The :insensitive pseudo-class is deprecated. Use :disabled instead.

(gnome-calculator:4871): Gtk-WARNING **: Theme parsing error: gtk-lubuntu.css:158:33: The :focused pseudo-class is deprecated. Use :focus instead.

(gnome-calculator:4871): Gtk-WARNING **: Theme parsing error: gtk-lubuntu.css:174:38: The :insensitive pseudo-class is deprecated. Use :disabled instead.

(gnome-calculator:4871): Gtk-WARNING **: Theme parsing error: gtk-lubuntu.css:175:40: The :insensitive pseudo-class is deprecated. Use :disabled instead.

(gnome-calculator:4871): Gtk-WARNING **: Theme parsing error: gtk-lubuntu.css:176:53: The :insensitive pseudo-class is deprecated. Use :disabled instead.

(gnome-calculator:4871): Gtk-WARNING **: Theme parsing error: gtk-lubuntu.css:177:55: The :insensitive pseudo-class is deprecated. Use :disabled instead.

(gnome-calculator:4871): Gtk-WARNING **: Theme parsing error: gtk-lubuntu.css:178:53: The :insensitive pseudo-class is deprecated. Use :disabled instead.

(gnome-calculator:4871): Gtk-WARNING **: Theme parsing error: gtk-lubuntu.css:179:55: The :insensitive pseudo-class is deprecated. Use :disabled instead.

(gnome-calculator:4871): Gtk-WARNING **: Theme parsing error: gtk-lubuntu.css:180:48: The :insensitive pseudo-class is deprecated. Use :disabled instead.

(gnome-calculator:4871): Gtk-WARNING **: Theme parsing error: gtk-lubuntu.css:181:50: The :insensitive pseudo-class is deprecated. Use :disabled instead.

(gnome-calculator:4871): Gtk-WARNING **: Theme parsing error: gtk-lubuntu.css:182:44: The :insensitive pseudo-class is deprecated. Use :disabled instead.

(gnome-calculator:4871): Gtk-WARNING **: Theme parsing error: gtk-lubuntu.css:183:46: The :insensitive pseudo-class is deprecated. Use :disabled instead.

(gnome-calculator:4871): Gtk-WARNING **: Theme parsing error: gtk-lubuntu.css:184:52: The :insensitive pseudo-class is deprecated. Use :disabled instead.

(gnome-calculator:4871): Gtk-WARNING **: Theme parsing error: gtk-lubuntu.css:185:54: The :insensitive pseudo-class is deprecated. Use :disabled instead.

(gnome-calculator:4871): Gtk-WARNING **: Theme parsing error: gtk-lubuntu.css:186:52: The :insensitive pseudo-class is deprecated. Use :disabled instead.

(gnome-calculator:4871): Gtk-WARNING **: Theme parsing error: gtk-lubuntu.css:187:54: The :insensitive pseudo-class is deprecated. Use :disabled instead.

(gnome-calculator:4871): Gtk-WARNING **: Theme parsing error: gtk-lubuntu.css:188:47: The :insensitive pseudo-class is deprecated. Use :disabled instead.

(gnome-calculator:4871): Gtk-WARNING **: Theme parsing error: gtk-lubuntu.css:189:49: The :insensitive pseudo-class is deprecated. Use :disabled instead.

(gnome-calculator:4871): Gtk-WARNING **: Theme parsing error: gtk-lubuntu.css:190:21: The :insensitive pseudo-class is deprecated. Use :disabled instead.

(gnome-calculator:4871): Gtk-WARNING **: Theme parsing error: gtk-lubuntu.css:191:23: The :insensitive pseudo-class is deprecated. Use :disabled instead.

(gnome-calculator:4871): Gtk-WARNING **: Theme parsing error: gtk-lubuntu.css:196:34: The :insensitive pseudo-class is deprecated. Use :disabled instead.

(gnome-calculator:4871): Gtk-WARNING **: Theme parsing error: gtk-lubuntu.css:286:15: The 'icon-shadow' property has been renamed to '-gtk-icon-shadow'

(gnome-calculator:4871): Gtk-WARNING **: Theme parsing error: gtk-lubuntu.css:309:15: The 'icon-shadow' property has been renamed to '-gtk-icon-shadow'

(gnome-calculator:4871): Gtk-WARNING **: Theme directory  imported-Humanity/192 of theme Lubuntu has no size field

EE

Note the EE here again, that I assume are key presses.

======================================================================
ERROR: testInteraction (__main__.WidgetTestCase)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "gnome-calculator.py", line 47, in testInteraction
    ldtp.click('frmCalculator*', 'btnNumeric1')
  File "/usr/local/lib/python2.7/dist-packages/ldtp/client.py", line 75, in __call__
    return self.__send(self.__name, args)
  File "/usr/lib/python2.7/xmlrpclib.py", line 1602, in __request
    verbose=self.__verbose
  File "/usr/local/lib/python2.7/dist-packages/ldtp/client.py", line 198, in request
    raise LdtpExecutionError(e.faultString.encode('utf-8'))
LdtpExecutionError: Unable to find window "frmCalculator*"

======================================================================
ERROR: testInteraction (__main__.WidgetTestCase)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "gnome-calculator.py", line 34, in tearDown
    ldtp.selectmenuitem('frmCalculator*', 'mnuQuit')
  File "/usr/local/lib/python2.7/dist-packages/ldtp/client.py", line 75, in __call__
    return self.__send(self.__name, args)
  File "/usr/lib/python2.7/xmlrpclib.py", line 1602, in __request
    verbose=self.__verbose
  File "/usr/local/lib/python2.7/dist-packages/ldtp/client.py", line 198, in request
    raise LdtpExecutionError(e.faultString.encode('utf-8'))
LdtpExecutionError: Unable to find window "frmCalculator*"

======================================================================
ERROR: testViews (__main__.WidgetTestCase)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "gnome-calculator.py", line 43, in testViews
    ldtp.selectmenuitem('frmCalculator*', menu_item)
  File "/usr/local/lib/python2.7/dist-packages/ldtp/client.py", line 75, in __call__
    return self.__send(self.__name, args)
  File "/usr/lib/python2.7/xmlrpclib.py", line 1602, in __request
    verbose=self.__verbose
  File "/usr/local/lib/python2.7/dist-packages/ldtp/client.py", line 198, in request
    raise LdtpExecutionError(e.faultString.encode('utf-8'))
LdtpExecutionError: Unable to find window "frmCalculator*"

======================================================================
ERROR: testViews (__main__.WidgetTestCase)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "gnome-calculator.py", line 34, in tearDown
    ldtp.selectmenuitem('frmCalculator*', 'mnuQuit')
  File "/usr/local/lib/python2.7/dist-packages/ldtp/client.py", line 75, in __call__
    return self.__send(self.__name, args)
  File "/usr/lib/python2.7/xmlrpclib.py", line 1602, in __request
    verbose=self.__verbose
  File "/usr/local/lib/python2.7/dist-packages/ldtp/client.py", line 198, in request
    raise LdtpExecutionError(e.faultString.encode('utf-8'))
LdtpExecutionError: Unable to find window "frmCalculator*"

----------------------------------------------------------------------
Ran 2 tests in 138.097s

FAILED (errors=4)

Just for completness, this is examples/gnome-calculator.py script in full glory (copyright not yet adapted):

'''
LDTP v2 gnome-calculator example

@author: Eitan Isaacson <eitan@ascender.com>
@copyright: Copyright (c) 2009 Eitan Isaacson
@license: LGPL

http://ldtp.freedesktop.org

This file may be distributed and/or modified under the terms of the GNU Lesser General
Public License version 2 as published by the Free Software Foundation. This file
is distributed without any warranty; without even the implied warranty of 
merchantability or fitness for a particular purpose.

See "COPYING" in the source distribution for more information.

Headers in this file shall remain intact.
'''

import ldtp
from time import sleep
import unittest

class WidgetTestCase(unittest.TestCase):
    def setUp(self):
        try:
            ldtp.launchapp('gnome-calculator')
            ldtp.waittillguiexist('frmCalculator*', guiTimeOut=5)
        except:
            self.tearDown()
            raise

    def tearDown(self):
        ldtp.selectmenuitem('frmCalculator*', 'mnuQuit')
        ldtp.waittillguinotexist('frmCalculator*')

    def testViews(self):
        for menu_item in ('mnuAdvanced',
                          'mnuFinancial',
                          'mnuScientific',
                          'mnuProgramming',
                          'mnuBasic'):
            ldtp.selectmenuitem('frmCalculator*', menu_item)
            sleep(1)

    def testInteraction(self):
        ldtp.click('frmCalculator*', 'btnNumeric1')
        sleep(0.5)
        ldtp.click('frmCalculator*', 'btnNumeric2')
        sleep(0.5)
        ldtp.click('frmCalculator*', 'btnNumeric3')
        sleep(0.5)
        ldtp.click('frmCalculator*', 'btnNumeric4')
        sleep(0.5)
        ldtp.click('frmCalculator*', 'btnMultiply')
        sleep(0.5)
        ldtp.click('frmCalculator*', 'btnNumeric2')
        sleep(0.5)
        ldtp.click('frmCalculator*', 'btnCalculateresult')

if __name__ == '__main__':
    unittest.main()

gnome version is 3.20.2 (note that I use Lubuntu, with an L of Lightweight, instead of Ubuntu):

richel@lubuntu:~/GitHubs/ldtp2/examples$ cat /usr/share/gnome/gnome-version.xml
<?xml version="1.0" encoding="UTF-8"?>
<gnome-version>
 <platform>3</platform>
 <minor>20</minor>
 <micro>2</micro>
 <distributor>Ubuntu</distributor>
 
</gnome-version>

When I do the same on Travis I read in the build log:

$ python gcalctool.py
Traceback (most recent call last):
  File "gcalctool.py", line 20, in <module>
    import ldtp
ImportError: No module named ldtp

Where I copy and simplify from .travis.yml:

sudo: required

install:
  # LDTP
  - sudo apt-get install python-twisted-web
  - sudo apt-get install python-wnck
  # gnome-calculator, for examples/gcalctool.py
  - sudo apt-get install gnome-calculator

script:
  # Build LDTP
  - python setup.py build
  - sudo python setup.py install
  - cd examples
  - python gcalctool.py

Did I miss a step in installing ldtp2?

So, test examples/gcalctool.py fails both locally (two posts up) and on Travis CI (one post up).

Ideas anyone?

@nagappan: can you run examples/gcalctools.py locally with success?

@richelbilderbeek , are you having any success with ldtp?

These examples might not work, it was developed long back

Generally I try this, in python prompt:

from ldtp import *
getapplist()
getwindowlist()
getobjectlist('window name')

The error messages have changed to something new:

$ python gcalctool.py
Traceback (most recent call last):
  File "gcalctool.py", line 20, in <module>
    import ldtp
ImportError: No module named ldtp

That looks doable :-)

I will close this Issue, perhaps open a new one.