test_imports.py 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319
  1. # These tests import Panda3D modules just to make sure that there are no
  2. # missing imports. It is useful for a quick and dirty test to make sure
  3. # that there are no obvious build issues.
  4. import pytest
  5. # This will print out imports on the command line.
  6. #import direct.showbase.VerboseImport
  7. def test_imports_panda3d():
  8. import imp, importlib, os
  9. import panda3d
  10. dir = os.path.dirname(panda3d.__file__)
  11. # Iterate over the things in the panda3d package that look like modules.
  12. extensions = set()
  13. for suffix in imp.get_suffixes():
  14. extensions.add(suffix[0])
  15. for basename in os.listdir(dir):
  16. if basename.startswith('lib'):
  17. # This not a Python module.
  18. continue
  19. module = basename.split('.', 1)[0]
  20. ext = basename[len(module):]
  21. if ext in extensions:
  22. importlib.import_module('panda3d.%s' % (module))
  23. def test_imports_direct():
  24. import direct.actor.Actor
  25. import direct.actor.DistributedActor
  26. import direct.cluster.ClusterClient
  27. import direct.cluster.ClusterConfig
  28. import direct.cluster.ClusterMsgs
  29. import direct.cluster.ClusterServer
  30. import direct.controls.BattleWalker
  31. import direct.controls.ControlManager
  32. import direct.controls.DevWalker
  33. import direct.controls.GhostWalker
  34. import direct.controls.GravityWalker
  35. import direct.controls.InputState
  36. import direct.controls.NonPhysicsWalker
  37. import direct.controls.ObserverWalker
  38. import direct.controls.PhysicsRoller
  39. import direct.controls.PhysicsWalker
  40. import direct.controls.SwimWalker
  41. import direct.controls.TwoDWalker
  42. import direct.directnotify.DirectNotify
  43. import direct.directnotify.DirectNotifyGlobal
  44. import direct.directnotify.Logger
  45. import direct.directnotify.LoggerGlobal
  46. import direct.directnotify.Notifier
  47. import direct.directnotify.RotatingLog
  48. import direct.directtools.DirectCameraControl
  49. import direct.directtools.DirectGeometry
  50. import direct.directtools.DirectGlobals
  51. import direct.directtools.DirectGrid
  52. import direct.directtools.DirectLights
  53. import direct.directtools.DirectManipulation
  54. import direct.directtools.DirectSelection
  55. import direct.directtools.DirectUtil
  56. import direct.directutil.DeltaProfiler
  57. import direct.directutil.DistributedLargeBlobSender
  58. import direct.directutil.DistributedLargeBlobSenderAI
  59. import direct.directutil.LargeBlobSenderConsts
  60. import direct.directutil.Mopath
  61. import direct.directutil.Verify
  62. import direct.directutil.WeightedChoice
  63. import direct.dist.FreezeTool
  64. import direct.dist.icon
  65. import direct.dist.commands
  66. import direct.distributed.AsyncRequest
  67. import direct.distributed.CRCache
  68. import direct.distributed.CRDataCache
  69. import direct.distributed.CachedDOData
  70. import direct.distributed.CartesianGridBase
  71. import direct.distributed.ClientRepository
  72. import direct.distributed.ClientRepositoryBase
  73. import direct.distributed.ClockDelta
  74. import direct.distributed.ConnectionRepository
  75. import direct.distributed.DistributedCamera
  76. import direct.distributed.DistributedCameraAI
  77. import direct.distributed.DistributedCameraOV
  78. import direct.distributed.DistributedCartesianGrid
  79. import direct.distributed.DistributedCartesianGridAI
  80. import direct.distributed.DistributedNode
  81. import direct.distributed.DistributedNodeAI
  82. import direct.distributed.DistributedNodeUD
  83. import direct.distributed.DistributedObject
  84. import direct.distributed.DistributedObjectAI
  85. import direct.distributed.DistributedObjectBase
  86. import direct.distributed.DistributedObjectGlobal
  87. import direct.distributed.DistributedObjectGlobalAI
  88. import direct.distributed.DistributedObjectGlobalUD
  89. import direct.distributed.DistributedObjectOV
  90. import direct.distributed.DistributedObjectUD
  91. import direct.distributed.DistributedSmoothNodeAI
  92. import direct.distributed.DistributedSmoothNodeBase
  93. import direct.distributed.DoCollectionManager
  94. import direct.distributed.DoHierarchy
  95. import direct.distributed.DoInterestManager
  96. import direct.distributed.GridChild
  97. import direct.distributed.GridParent
  98. import direct.distributed.InterestWatcher
  99. import direct.distributed.MsgTypes
  100. import direct.distributed.MsgTypesCMU
  101. import direct.distributed.NetMessenger
  102. import direct.distributed.ParentMgr
  103. import direct.distributed.PyDatagram
  104. import direct.distributed.PyDatagramIterator
  105. import direct.distributed.RelatedObjectMgr
  106. import direct.distributed.SampleObject
  107. import direct.distributed.ServerRepository
  108. import direct.distributed.StagedObject
  109. import direct.distributed.TimeManager
  110. import direct.distributed.TimeManagerAI
  111. import direct.extensions_native.extension_native_helpers
  112. import direct.filter.CommonFilters
  113. import direct.filter.FilterManager
  114. import direct.fsm.ClassicFSM
  115. import direct.fsm.FSM
  116. import direct.fsm.FourState
  117. import direct.fsm.FourStateAI
  118. import direct.fsm.SampleFSM
  119. import direct.fsm.State
  120. import direct.fsm.StateData
  121. import direct.fsm.StatePush
  122. import direct.gui.DirectButton
  123. import direct.gui.DirectCheckBox
  124. import direct.gui.DirectCheckButton
  125. import direct.gui.DirectDialog
  126. import direct.gui.DirectEntry
  127. import direct.gui.DirectEntryScroll
  128. import direct.gui.DirectFrame
  129. import direct.gui.DirectGui
  130. import direct.gui.DirectGuiBase
  131. import direct.gui.DirectGuiGlobals
  132. import direct.gui.DirectGuiTest
  133. import direct.gui.DirectLabel
  134. import direct.gui.DirectOptionMenu
  135. import direct.gui.DirectRadioButton
  136. import direct.gui.DirectScrollBar
  137. import direct.gui.DirectScrolledFrame
  138. import direct.gui.DirectScrolledList
  139. import direct.gui.DirectSlider
  140. import direct.gui.DirectWaitBar
  141. import direct.gui.OnscreenGeom
  142. import direct.gui.OnscreenImage
  143. import direct.gui.OnscreenText
  144. import direct.interval.ActorInterval
  145. import direct.interval.AnimControlInterval
  146. import direct.interval.FunctionInterval
  147. import direct.interval.IndirectInterval
  148. import direct.interval.Interval
  149. import direct.interval.IntervalGlobal
  150. import direct.interval.IntervalManager
  151. import direct.interval.IntervalTest
  152. import direct.interval.LerpBlendHelpers
  153. import direct.interval.LerpInterval
  154. import direct.interval.MetaInterval
  155. import direct.interval.MopathInterval
  156. import direct.interval.ParticleInterval
  157. import direct.interval.ProjectileInterval
  158. import direct.interval.ProjectileIntervalTest
  159. import direct.interval.SoundInterval
  160. import direct.interval.TestInterval
  161. import direct.motiontrail.MotionTrail
  162. import direct.particles.ForceGroup
  163. import direct.particles.GlobalForceGroup
  164. import direct.particles.ParticleEffect
  165. import direct.particles.ParticleFloorTest
  166. import direct.particles.ParticleManagerGlobal
  167. import direct.particles.ParticleTest
  168. import direct.particles.Particles
  169. import direct.particles.SpriteParticleRendererExt
  170. import direct.physics.FallTest
  171. import direct.physics.RotationTest
  172. import direct.showbase.Audio3DManager
  173. import direct.showbase.BufferViewer
  174. import direct.showbase.BulletinBoard
  175. import direct.showbase.BulletinBoardGlobal
  176. import direct.showbase.BulletinBoardWatcher
  177. import direct.showbase.ContainerLeakDetector
  178. import direct.showbase.ContainerReport
  179. import direct.showbase.CountedResource
  180. import direct.showbase.DirectObject
  181. import direct.showbase.DistancePhasedNode
  182. import direct.showbase.EventGroup
  183. import direct.showbase.EventManager
  184. import direct.showbase.EventManagerGlobal
  185. import direct.showbase.ExceptionVarDump
  186. import direct.showbase.Factory
  187. import direct.showbase.Finder
  188. import direct.showbase.GarbageReport
  189. import direct.showbase.GarbageReportScheduler
  190. import direct.showbase.InputStateGlobal
  191. import direct.showbase.Job
  192. import direct.showbase.JobManager
  193. import direct.showbase.JobManagerGlobal
  194. import direct.showbase.LeakDetectors
  195. import direct.showbase.Loader
  196. import direct.showbase.Messenger
  197. import direct.showbase.MessengerGlobal
  198. import direct.showbase.MessengerLeakDetector
  199. import direct.showbase.MirrorDemo
  200. import direct.showbase.ObjectPool
  201. import direct.showbase.ObjectReport
  202. import direct.showbase.OnScreenDebug
  203. import direct.showbase.PhasedObject
  204. import direct.showbase.PhysicsManagerGlobal
  205. import direct.showbase.Pool
  206. import direct.showbase.ProfileSession
  207. import direct.showbase.PythonUtil
  208. import direct.showbase.RandomNumGen
  209. import direct.showbase.ReferrerSearch
  210. import direct.showbase.SfxPlayer
  211. import direct.showbase.ShadowDemo
  212. import direct.showbase.ShadowPlacer
  213. import direct.showbase.ShowBase
  214. import direct.showbase.TaskThreaded
  215. import direct.showbase.ThreeUpShow
  216. import direct.showbase.Transitions
  217. import direct.showbase.VFSImporter
  218. import direct.showbase.WxGlobal
  219. import direct.showutil.BuildGeometry
  220. import direct.showutil.Effects
  221. import direct.showutil.Rope
  222. import direct.showutil.TexMemWatcher
  223. import direct.showutil.TexViewer
  224. import direct.stdpy.file
  225. import direct.stdpy.glob
  226. import direct.stdpy.pickle
  227. import direct.stdpy.thread
  228. import direct.stdpy.threading
  229. import direct.stdpy.threading2
  230. import direct.task.FrameProfiler
  231. import direct.task.MiniTask
  232. import direct.task.Task
  233. import direct.task.TaskManagerGlobal
  234. import direct.task.TaskProfiler
  235. import direct.task.TaskTester
  236. import direct.task.Timer
  237. def test_imports_tk():
  238. Pmw = pytest.importorskip('Pmw')
  239. import direct.showbase.TkGlobal
  240. import direct.tkpanels.AnimPanel
  241. import direct.tkpanels.DirectSessionPanel
  242. import direct.tkpanels.FSMInspector
  243. import direct.tkpanels.Inspector
  244. import direct.tkpanels.MopathRecorder
  245. import direct.tkpanels.NotifyPanel
  246. import direct.tkpanels.ParticlePanel
  247. import direct.tkpanels.Placer
  248. import direct.tkpanels.TaskManagerPanel
  249. import direct.tkwidgets.AppShell
  250. import direct.tkwidgets.Dial
  251. import direct.tkwidgets.EntryScale
  252. import direct.tkwidgets.Floater
  253. import direct.tkwidgets.MemoryExplorer
  254. import direct.tkwidgets.ProgressBar
  255. import direct.tkwidgets.SceneGraphExplorer
  256. import direct.tkwidgets.Slider
  257. import direct.tkwidgets.Tree
  258. import direct.tkwidgets.Valuator
  259. import direct.tkwidgets.VectorWidgets
  260. import direct.tkwidgets.WidgetPropertiesDialog
  261. def test_imports_wx():
  262. wx = pytest.importorskip('wx')
  263. import direct.wxwidgets.ViewPort
  264. import direct.wxwidgets.WxAppShell
  265. import direct.wxwidgets.WxPandaShell
  266. import direct.wxwidgets.WxPandaWindow
  267. import direct.wxwidgets.WxSlider
  268. import direct.leveleditor.ActionMgr
  269. import direct.leveleditor.AnimControlUI
  270. import direct.leveleditor.AnimGlobals
  271. import direct.leveleditor.AnimMgr
  272. import direct.leveleditor.AnimMgrBase
  273. import direct.leveleditor.CurveAnimUI
  274. import direct.leveleditor.CurveEditor
  275. import direct.leveleditor.FileMgr
  276. import direct.leveleditor.GraphEditorUI
  277. import direct.leveleditor.HotKeyUI
  278. import direct.leveleditor.LayerEditorUI
  279. import direct.leveleditor.LevelEditor
  280. import direct.leveleditor.LevelEditorBase
  281. import direct.leveleditor.LevelEditorStart
  282. import direct.leveleditor.LevelEditorUI
  283. import direct.leveleditor.LevelEditorUIBase
  284. import direct.leveleditor.LevelLoader
  285. import direct.leveleditor.LevelLoaderBase
  286. import direct.leveleditor.MayaConverter
  287. import direct.leveleditor.ObjectGlobals
  288. import direct.leveleditor.ObjectHandler
  289. import direct.leveleditor.ObjectMgr
  290. import direct.leveleditor.ObjectMgrBase
  291. import direct.leveleditor.ObjectPalette
  292. import direct.leveleditor.ObjectPaletteBase
  293. import direct.leveleditor.ObjectPaletteUI
  294. import direct.leveleditor.ObjectPropertyUI
  295. import direct.leveleditor.PaletteTreeCtrl
  296. import direct.leveleditor.ProtoObjs
  297. import direct.leveleditor.ProtoObjsUI
  298. import direct.leveleditor.ProtoPalette
  299. import direct.leveleditor.ProtoPaletteBase
  300. import direct.leveleditor.ProtoPaletteUI
  301. import direct.leveleditor.SceneGraphUI
  302. import direct.leveleditor.SceneGraphUIBase