From 6860c7776bf768f984dbbcaacef2af629c24e478 Mon Sep 17 00:00:00 2001 From: rdb Date: Thu, 23 Feb 2023 00:06:44 +0100 Subject: [PATCH] tests: Fix unit test suite when building without physics or net --- tests/particles/test_particlesystem.py | 3 + tests/physics/test_GlobalForceGroup.py | 4 +- tests/test_imports.py | 134 ++++++++++++++----------- 3 files changed, 79 insertions(+), 62 deletions(-) diff --git a/tests/particles/test_particlesystem.py b/tests/particles/test_particlesystem.py index 41dce1ccaf..505c8b8d47 100644 --- a/tests/particles/test_particlesystem.py +++ b/tests/particles/test_particlesystem.py @@ -1,3 +1,6 @@ +import pytest +pytest.importorskip("panda3d.physics") + from panda3d.core import NodePath, PandaNode from direct.particles.ParticleEffect import ParticleEffect from direct.particles.Particles import Particles diff --git a/tests/physics/test_GlobalForceGroup.py b/tests/physics/test_GlobalForceGroup.py index 2f0f2e23f4..5a8615132e 100644 --- a/tests/physics/test_GlobalForceGroup.py +++ b/tests/physics/test_GlobalForceGroup.py @@ -1,5 +1,7 @@ +import pytest +physics = pytest.importorskip("panda3d.physics") + from direct.particles.GlobalForceGroup import GlobalForceGroup -from panda3d import physics def test_GlobalForceGroup(): diff --git a/tests/test_imports.py b/tests/test_imports.py index 008df34ec6..50138735ae 100644 --- a/tests/test_imports.py +++ b/tests/test_imports.py @@ -31,10 +31,6 @@ def test_imports_panda3d(): def test_imports_direct(): import direct.actor.Actor import direct.actor.DistributedActor - import direct.cluster.ClusterClient - import direct.cluster.ClusterConfig - import direct.cluster.ClusterMsgs - import direct.cluster.ClusterServer import direct.controls.BattleWalker import direct.controls.ControlManager import direct.controls.DevWalker @@ -43,7 +39,6 @@ def test_imports_direct(): import direct.controls.InputState import direct.controls.NonPhysicsWalker import direct.controls.ObserverWalker - import direct.controls.PhysicsWalker import direct.controls.SwimWalker import direct.controls.TwoDWalker import direct.directnotify.DirectNotify @@ -70,51 +65,6 @@ def test_imports_direct(): import direct.dist.FreezeTool import direct.dist.icon import direct.dist.commands - import direct.distributed.AsyncRequest - import direct.distributed.CRCache - import direct.distributed.CRDataCache - import direct.distributed.CachedDOData - import direct.distributed.CartesianGridBase - import direct.distributed.ClientRepository - import direct.distributed.ClientRepositoryBase - import direct.distributed.ClockDelta - import direct.distributed.ConnectionRepository - import direct.distributed.DistributedCamera - import direct.distributed.DistributedCameraAI - import direct.distributed.DistributedCameraOV - import direct.distributed.DistributedCartesianGrid - import direct.distributed.DistributedCartesianGridAI - import direct.distributed.DistributedNode - import direct.distributed.DistributedNodeAI - import direct.distributed.DistributedNodeUD - import direct.distributed.DistributedObject - import direct.distributed.DistributedObjectAI - import direct.distributed.DistributedObjectBase - import direct.distributed.DistributedObjectGlobal - import direct.distributed.DistributedObjectGlobalAI - import direct.distributed.DistributedObjectGlobalUD - import direct.distributed.DistributedObjectOV - import direct.distributed.DistributedObjectUD - import direct.distributed.DistributedSmoothNodeAI - import direct.distributed.DistributedSmoothNodeBase - import direct.distributed.DoCollectionManager - import direct.distributed.DoHierarchy - import direct.distributed.DoInterestManager - import direct.distributed.GridChild - import direct.distributed.GridParent - import direct.distributed.InterestWatcher - import direct.distributed.MsgTypes - import direct.distributed.MsgTypesCMU - import direct.distributed.NetMessenger - import direct.distributed.ParentMgr - import direct.distributed.PyDatagram - import direct.distributed.PyDatagramIterator - import direct.distributed.RelatedObjectMgr - import direct.distributed.SampleObject - import direct.distributed.ServerRepository - import direct.distributed.StagedObject - import direct.distributed.TimeManager - import direct.distributed.TimeManagerAI import direct.extensions_native.extension_native_helpers import direct.filter.CommonFilters import direct.filter.FilterManager @@ -166,16 +116,6 @@ def test_imports_direct(): import direct.interval.SoundInterval import direct.interval.TestInterval import direct.motiontrail.MotionTrail - import direct.particles.ForceGroup - import direct.particles.GlobalForceGroup - import direct.particles.ParticleEffect - import direct.particles.ParticleFloorTest - import direct.particles.ParticleManagerGlobal - import direct.particles.ParticleTest - import direct.particles.Particles - import direct.particles.SpriteParticleRendererExt - import direct.physics.FallTest - import direct.physics.RotationTest import direct.showbase.Audio3DManager import direct.showbase.BufferViewer import direct.showbase.BulletinBoard @@ -208,7 +148,6 @@ def test_imports_direct(): import direct.showbase.ObjectReport import direct.showbase.OnScreenDebug import direct.showbase.PhasedObject - import direct.showbase.PhysicsManagerGlobal import direct.showbase.Pool import direct.showbase.ProfileSession import direct.showbase.PythonUtil @@ -243,6 +182,79 @@ def test_imports_direct(): import direct.task.Timer +def test_imports_direct_physics(): + pytest.importorskip("panda3d.physics") + + import direct.controls.PhysicsWalker + import direct.particles.ForceGroup + import direct.particles.GlobalForceGroup + import direct.particles.ParticleEffect + import direct.particles.ParticleFloorTest + import direct.particles.ParticleManagerGlobal + import direct.particles.ParticleTest + import direct.particles.Particles + import direct.particles.SpriteParticleRendererExt + import direct.physics.FallTest + import direct.physics.RotationTest + import direct.showbase.PhysicsManagerGlobal + + +def test_imports_direct_net(): + from panda3d import core + if not hasattr(core, 'ConnectionWriter'): + pytest.skip("Build without HAVE_NET") + + import direct.cluster.ClusterClient + import direct.cluster.ClusterConfig + import direct.cluster.ClusterMsgs + import direct.cluster.ClusterServer + import direct.distributed.AsyncRequest + import direct.distributed.CRCache + import direct.distributed.CRDataCache + import direct.distributed.CachedDOData + import direct.distributed.CartesianGridBase + import direct.distributed.ClientRepository + import direct.distributed.ClientRepositoryBase + import direct.distributed.ClockDelta + import direct.distributed.ConnectionRepository + import direct.distributed.DistributedCamera + import direct.distributed.DistributedCameraAI + import direct.distributed.DistributedCameraOV + import direct.distributed.DistributedCartesianGrid + import direct.distributed.DistributedCartesianGridAI + import direct.distributed.DistributedNode + import direct.distributed.DistributedNodeAI + import direct.distributed.DistributedNodeUD + import direct.distributed.DistributedObject + import direct.distributed.DistributedObjectAI + import direct.distributed.DistributedObjectBase + import direct.distributed.DistributedObjectGlobal + import direct.distributed.DistributedObjectGlobalAI + import direct.distributed.DistributedObjectGlobalUD + import direct.distributed.DistributedObjectOV + import direct.distributed.DistributedObjectUD + import direct.distributed.DistributedSmoothNodeAI + import direct.distributed.DistributedSmoothNodeBase + import direct.distributed.DoCollectionManager + import direct.distributed.DoHierarchy + import direct.distributed.DoInterestManager + import direct.distributed.GridChild + import direct.distributed.GridParent + import direct.distributed.InterestWatcher + import direct.distributed.MsgTypes + import direct.distributed.MsgTypesCMU + import direct.distributed.NetMessenger + import direct.distributed.ParentMgr + import direct.distributed.PyDatagram + import direct.distributed.PyDatagramIterator + import direct.distributed.RelatedObjectMgr + import direct.distributed.SampleObject + import direct.distributed.ServerRepository + import direct.distributed.StagedObject + import direct.distributed.TimeManager + import direct.distributed.TimeManagerAI + + def test_imports_tk(): Pmw = pytest.importorskip('Pmw')