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:
Davide Andreoli 2016-06-03 14:20:41 +02:00
parent e0456df2a2
commit 243664d738
2 changed files with 90 additions and 0 deletions

View File

@ -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():

View File

@ -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)