Add a test to check eo class names
a bit hackish, but do his work. And is important to check those names now that efl class names are going to be shuffled around :P
This commit is contained in:
parent
e0456df2a2
commit
243664d738
|
@ -266,6 +266,11 @@ cdef class Eo(object):
|
|||
|
||||
return 1
|
||||
|
||||
def _wipe_obj_data_NEVER_USE_THIS(self):
|
||||
# only used in tests/eo/test_02_class_names.py
|
||||
# to force object_from_instance() to recreate the obj
|
||||
eo_key_data_set(self.obj, "python-eo", NULL)
|
||||
|
||||
cdef int _set_properties_from_keyword_args(self, dict kwargs) except 0:
|
||||
if kwargs:
|
||||
for k, v in kwargs.items():
|
||||
|
|
|
@ -0,0 +1,85 @@
|
|||
#!/usr/bin/env python
|
||||
|
||||
from efl import evas
|
||||
from efl import elementary as elm
|
||||
|
||||
import unittest
|
||||
|
||||
|
||||
""" NOT TESTED YET:
|
||||
|
||||
Evas_Canvas -> Canvas
|
||||
Evas_Smart -> SmartObject
|
||||
Evas_FilledImage -> FilledImage
|
||||
|
||||
Elm_Conformant -> Conformant
|
||||
Elm_Widget -> Object
|
||||
Elm_Web -> Web
|
||||
|
||||
"""
|
||||
|
||||
class TestElmClassNames(unittest.TestCase):
|
||||
|
||||
def setUp(self):
|
||||
elm.need_ethumb()
|
||||
self.win = elm.Window("t", elm.ELM_WIN_BASIC)
|
||||
self.frame = elm.Frame(self.win)
|
||||
|
||||
def tearDown(self):
|
||||
self.win.delete()
|
||||
|
||||
def testElm(self):
|
||||
# 1. test window
|
||||
|
||||
# this code will force the recreation of the py object (by class name)
|
||||
# in the function object_from_instance()
|
||||
self.win._wipe_obj_data_NEVER_USE_THIS()
|
||||
del self.win
|
||||
self.win = self.frame.top_widget_get()
|
||||
self.assertIsInstance(self.win, elm.Window)
|
||||
|
||||
# 2. test all the other widgets
|
||||
for cls in [elm.Actionslider, elm.Background, elm.Box,
|
||||
elm.Bubble, elm.Button, elm.Calendar, elm.Check, elm.Clock,
|
||||
elm.Colorselector, elm.Combobox, elm.Ctxpopup, elm.Datetime,
|
||||
elm.Dayselector, elm.Diskselector, elm.Entry, elm.Fileselector,
|
||||
elm.FileselectorButton, elm.FileselectorEntry, elm.Flip,
|
||||
elm.FlipSelector, elm.Frame, elm.Gengrid, elm.Genlist,
|
||||
elm.GestureLayer, elm.Grid, elm.Hover, elm.Hoversel, elm.Icon,
|
||||
elm.Image, elm.Index, elm.InnerWindow, elm.Label, elm.Layout,
|
||||
elm.List, elm.Map, elm.Mapbuf, elm.Menu, elm.MultiButtonEntry,
|
||||
elm.Naviframe, elm.Notify, elm.Panel, elm.Panes, elm.Photo,
|
||||
elm.Photocam, elm.Plug, elm.Popup, elm.Progressbar, elm.Radio,
|
||||
elm.Scroller, elm.SegmentControl, elm.Separator, elm.Slider,
|
||||
elm.Slideshow, elm.Spinner, elm.Table, elm.Thumb, elm.Toolbar,
|
||||
elm.Video, elm.Player]:
|
||||
obj1 = cls(self.win)
|
||||
self.frame.content = obj1
|
||||
|
||||
obj1._wipe_obj_data_NEVER_USE_THIS()
|
||||
del obj1
|
||||
obj2 = self.frame.content
|
||||
self.assertIsInstance(obj2, cls)
|
||||
|
||||
obj2.delete()
|
||||
del obj2
|
||||
|
||||
def testEvas(self):
|
||||
for cls in [evas.Image, evas.Line, evas.Polygon, evas.Text, evas.Textblock,
|
||||
evas.Box, evas.Textgrid, evas.Table, evas.Grid]:
|
||||
obj1 = cls(self.win.evas)
|
||||
self.frame.content = obj1
|
||||
|
||||
obj1._wipe_obj_data_NEVER_USE_THIS()
|
||||
del obj1
|
||||
obj2 = self.frame.content
|
||||
self.assertIsInstance(obj2, cls)
|
||||
|
||||
obj2.delete()
|
||||
del obj2
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
unittest.main(verbosity=2)
|
||||
|
||||
|
Loading…
Reference in New Issue