mirror of
https://github.com/wxWidgets/Phoenix.git
synced 2025-09-05 17:30:26 +02:00
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxPython/Phoenix/trunk@71993 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
310 lines
10 KiB
Python
310 lines
10 KiB
Python
import imp_unittest, unittest
|
|
import wtc
|
|
import wx
|
|
import os
|
|
import sys
|
|
|
|
pngFile = os.path.join(os.path.dirname(__file__), 'toucan.png')
|
|
|
|
#print os.getpid(); raw_input('Press enter...')
|
|
|
|
#---------------------------------------------------------------------------
|
|
|
|
class DataObjTests(wtc.WidgetTestCase):
|
|
|
|
def test_DataFormat(self):
|
|
fmt1 = wx.DataFormat('my custom format')
|
|
fmt2 = wx.DataFormat(wx.DF_TEXT)
|
|
self.assertTrue(fmt1 != fmt2)
|
|
fmt3 = wx.DataFormat(wx.DF_TEXT)
|
|
self.assertTrue(fmt2 == fmt3)
|
|
|
|
|
|
|
|
def test_DataFormatIDsExist(self):
|
|
wx.DF_INVALID
|
|
wx.DF_TEXT
|
|
wx.DF_BITMAP
|
|
wx.DF_METAFILE
|
|
wx.DF_SYLK
|
|
wx.DF_DIF
|
|
wx.DF_TIFF
|
|
wx.DF_OEMTEXT
|
|
wx.DF_DIB
|
|
wx.DF_PALETTE
|
|
wx.DF_PENDATA
|
|
wx.DF_RIFF
|
|
wx.DF_WAVE
|
|
wx.DF_UNICODETEXT
|
|
wx.DF_ENHMETAFILE
|
|
wx.DF_FILENAME
|
|
wx.DF_LOCALE
|
|
wx.DF_PRIVATE
|
|
wx.DF_HTML
|
|
wx.DF_MAX
|
|
|
|
|
|
|
|
def test_DataObjectGetAllFormats(self):
|
|
class MyDataObject(wx.DataObject):
|
|
def __init__(self):
|
|
wx.DataObject.__init__(self)
|
|
self.myFormats = [wx.DataFormat(wx.DF_TEXT),
|
|
wx.DataFormat(wx.DF_UNICODETEXT)]
|
|
|
|
def GetAllFormats(self, d):
|
|
return self.myFormats
|
|
|
|
def GetFormatCount(self, d):
|
|
return len(self.myFormats)
|
|
|
|
data = MyDataObject()
|
|
if hasattr(data, '_testGetAllFormats'):
|
|
data._testGetAllFormats()
|
|
|
|
# TODO: Get this fixed! See https://groups.google.com/d/topic/wx-dev/wFxevpvbhvQ/discussion
|
|
@unittest.skipIf(sys.platform == 'darwin', 'Using wx.DF_TEXT currently fails on Mac')
|
|
def test_DataObject(self):
|
|
class MyDataObject(wx.DataObject):
|
|
def __init__(self, value=''):
|
|
wx.DataObject.__init__(self)
|
|
self.myFormats = [wx.DataFormat(wx.DF_TEXT)]
|
|
self.myData = wtc.mybytes(value)
|
|
|
|
def GetAllFormats(self, d):
|
|
return self.myFormats
|
|
def GetFormatCount(self, d):
|
|
return len(self.myFormats)
|
|
def GetPreferredFormat(self, d):
|
|
return self.myFormats[0]
|
|
def GetDataSize(self, format):
|
|
return len(self.myData)
|
|
|
|
def GetDataHere(self, format, buf):
|
|
# copy our local data value to buf
|
|
assert isinstance(buf, memoryview)
|
|
buf[:] = self.myData
|
|
return True
|
|
|
|
def SetData(self, format, buf):
|
|
# copy from buf to our local data value
|
|
assert isinstance(buf, memoryview)
|
|
self.myData = buf.tobytes()
|
|
return True
|
|
|
|
# copy
|
|
data1 = MyDataObject('This is some data.')
|
|
if wx.TheClipboard.Open():
|
|
wx.TheClipboard.SetData(data1)
|
|
wx.TheClipboard.Close()
|
|
|
|
# paste
|
|
data2 = MyDataObject()
|
|
if wx.TheClipboard.Open():
|
|
wx.TheClipboard.GetData(data2)
|
|
wx.TheClipboard.Close()
|
|
|
|
self.assertEqual(data1.myData, data2.myData)
|
|
|
|
|
|
def test_DataObject2(self):
|
|
class MyDataObject(wx.DataObject):
|
|
def __init__(self, value=''):
|
|
wx.DataObject.__init__(self)
|
|
self.myFormats = [wx.DataFormat("My Custom DataFormat")]
|
|
self.myData = wtc.mybytes(value)
|
|
|
|
def GetAllFormats(self, d):
|
|
return self.myFormats
|
|
def GetFormatCount(self, d):
|
|
return len(self.myFormats)
|
|
def GetPreferredFormat(self, d):
|
|
return self.myFormats[0]
|
|
def GetDataSize(self, format):
|
|
return len(self.myData)
|
|
|
|
def GetDataHere(self, format, buf):
|
|
# copy our local data value to buf
|
|
assert isinstance(buf, memoryview)
|
|
buf[:] = self.myData
|
|
return True
|
|
|
|
def SetData(self, format, buf):
|
|
# copy from buf to our local data value
|
|
assert isinstance(buf, memoryview)
|
|
self.myData = buf.tobytes()
|
|
return True
|
|
|
|
# copy
|
|
data1 = MyDataObject('This is some data.')
|
|
if wx.TheClipboard.Open():
|
|
wx.TheClipboard.SetData(data1)
|
|
wx.TheClipboard.Close()
|
|
|
|
# paste
|
|
data2 = MyDataObject()
|
|
if wx.TheClipboard.Open():
|
|
wx.TheClipboard.GetData(data2)
|
|
wx.TheClipboard.Close()
|
|
|
|
self.assertEqual(data1.myData, data2.myData)
|
|
|
|
|
|
def test_DataObjectSimple1(self):
|
|
df = wx.DataFormat(wx.DF_TEXT)
|
|
dobj = wx.DataObjectSimple(df)
|
|
self.assertTrue(dobj.GetFormatCount() == 1)
|
|
self.assertTrue(dobj.GetFormat() == df)
|
|
self.assertTrue(dobj.GetAllFormats()[0] == df)
|
|
|
|
|
|
# TODO: Get this fixed! See https://groups.google.com/d/topic/wx-dev/wFxevpvbhvQ/discussion
|
|
@unittest.skipIf(sys.platform == 'darwin', 'Using wx.DF_TEXT currently fails on Mac')
|
|
def test_DataObjectSimple2(self):
|
|
class MyDataObject(wx.DataObjectSimple):
|
|
def __init__(self, value=''):
|
|
wx.DataObjectSimple.__init__(self)
|
|
self.SetFormat(wx.DataFormat(wx.DF_TEXT))
|
|
self.myData = wtc.mybytes(value)
|
|
|
|
def GetDataSize(self):
|
|
return len(self.myData)
|
|
|
|
def GetDataHere(self, buf):
|
|
# copy our local data value to buf
|
|
assert isinstance(buf, memoryview)
|
|
buf[:] = self.myData
|
|
return True
|
|
|
|
def SetData(self, buf):
|
|
# copy from buf to our local data value
|
|
assert isinstance(buf, memoryview)
|
|
self.myData = buf.tobytes()
|
|
return True
|
|
|
|
# copy
|
|
data1 = MyDataObject('This is some data.')
|
|
if wx.TheClipboard.Open():
|
|
wx.TheClipboard.SetData(data1)
|
|
wx.TheClipboard.Close()
|
|
|
|
# paste
|
|
data2 = MyDataObject()
|
|
if wx.TheClipboard.Open():
|
|
wx.TheClipboard.GetData(data2)
|
|
wx.TheClipboard.Close()
|
|
|
|
self.assertEqual(data1.myData, data2.myData)
|
|
|
|
|
|
def test_DataObjectSimple3(self):
|
|
class MyDataObject(wx.DataObjectSimple):
|
|
def __init__(self, value=''):
|
|
wx.DataObjectSimple.__init__(self)
|
|
self.SetFormat(wx.DataFormat("My Custom Data Format"))
|
|
self.myData = wtc.mybytes(value)
|
|
|
|
def GetDataSize(self):
|
|
return len(self.myData)
|
|
|
|
def GetDataHere(self, buf):
|
|
# copy our local data value to buf
|
|
assert isinstance(buf, memoryview)
|
|
buf[:] = self.myData
|
|
return True
|
|
|
|
def SetData(self, buf):
|
|
# copy from buf to our local data value
|
|
assert isinstance(buf, memoryview)
|
|
self.myData = buf.tobytes()
|
|
return True
|
|
|
|
# copy
|
|
data1 = MyDataObject('This is some data.')
|
|
if wx.TheClipboard.Open():
|
|
wx.TheClipboard.SetData(data1)
|
|
wx.TheClipboard.Close()
|
|
|
|
# paste
|
|
data2 = MyDataObject()
|
|
if wx.TheClipboard.Open():
|
|
wx.TheClipboard.GetData(data2)
|
|
wx.TheClipboard.Close()
|
|
|
|
self.assertEqual(data1.myData, data2.myData)
|
|
|
|
|
|
def test_CustomDataObject(self):
|
|
import pickle
|
|
data1 = list(range(10))
|
|
obj = wx.CustomDataObject('my custom format')
|
|
obj.SetData(pickle.dumps(data1))
|
|
data2 = pickle.loads(obj.GetData().tobytes())
|
|
self.assertEqual(data1, data2)
|
|
|
|
|
|
|
|
def test_DataObjectComposite(self):
|
|
do = wx.DataObjectComposite()
|
|
df1 = wx.DataFormat("data type 1")
|
|
df2 = wx.DataFormat("data type 2")
|
|
d1 = wx.CustomDataObject(df1)
|
|
d2 = wx.CustomDataObject(df2)
|
|
do.Add(d1, True)
|
|
do.Add(d2)
|
|
|
|
self.assertTrue(do.GetPreferredFormat() == df1)
|
|
d3 = do.GetObject(df2)
|
|
self.assertTrue(isinstance(d3, wx.CustomDataObject))
|
|
self.assertTrue(d3 is d2)
|
|
|
|
|
|
def test_BitmapDataObject(self):
|
|
do = wx.BitmapDataObject()
|
|
do.Bitmap = wx.Bitmap(pngFile)
|
|
self.assertTrue(do.GetBitmap().IsOk())
|
|
self.assertTrue(do.Bitmap.IsOk())
|
|
|
|
|
|
def test_TextDataObject(self):
|
|
data = "This is some data"
|
|
do = wx.TextDataObject(data)
|
|
self.assertEqual(do.GetText(), data)
|
|
self.assertEqual(do.Text, data)
|
|
self.assertAlmostEqual(do.GetTextLength(), len(data), delta=1)
|
|
self.assertAlmostEqual(do.TextLength, len(data), delta=1)
|
|
|
|
|
|
def test_URLDataObject(self):
|
|
url = 'http://wxPython.org/'
|
|
do = wx.URLDataObject()
|
|
do.URL = url
|
|
self.assertEqual(do.GetURL(), url)
|
|
self.assertEqual(do.URL, url)
|
|
|
|
|
|
def test_FileDataObject(self):
|
|
do = wx.FileDataObject()
|
|
do.AddFile('filename1')
|
|
do.AddFile('filename2')
|
|
do.AddFile('filename3')
|
|
|
|
names = do.GetFilenames()
|
|
self.assertTrue(len(names) == 3)
|
|
self.assertTrue(names[0] == 'filename1')
|
|
self.assertTrue(names == do.Filenames)
|
|
|
|
|
|
def test_HTMLDataObject(self):
|
|
data = "<html><body>This is some data</body></html>"
|
|
do = wx.HTMLDataObject(data)
|
|
self.assertEqual(do.GetHTML(), data)
|
|
self.assertEqual(do.HTML, data)
|
|
|
|
|
|
#---------------------------------------------------------------------------
|
|
|
|
|
|
if __name__ == '__main__':
|
|
unittest.main()
|