Skip to content

Commit

Permalink
Added skip to handle tests that need matplotlib and/or pydocstyle whe…
Browse files Browse the repository at this point in the history
…n not installed (#1062)

* skip tests when matplotlib and/or pydocstyle are not installed

* fix indentation

* fix mpl imports

* fix mpl imports and code style

* typo

* change tolerance on failing test

---------

Co-authored-by: swryan <swryan@users.noreply.github.com>
  • Loading branch information
swryan and swryan committed Apr 30, 2024
1 parent 8cb3c26 commit 4e39ef9
Show file tree
Hide file tree
Showing 47 changed files with 329 additions and 144 deletions.
16 changes: 10 additions & 6 deletions dymos/examples/brachistochrone/doc/test_doc_brachistochrone.py
Original file line number Diff line number Diff line change
@@ -1,14 +1,16 @@
import os
import unittest

import matplotlib
import matplotlib.pyplot as plt

from openmdao.utils.testing_utils import use_tempdirs, require_pyoptsparse
try:
import matplotlib
import matplotlib.pyplot as plt

matplotlib.use('Agg')
plt.style.use('ggplot')
except ImportError:
matplotlib = None

matplotlib.use('Agg')
plt.style.use('ggplot')
from openmdao.utils.testing_utils import use_tempdirs, require_pyoptsparse


@use_tempdirs
Expand Down Expand Up @@ -47,6 +49,7 @@ def test_brachistochrone_partials(self):
cpd = p.check_partials(method='cs', compact_print=True)
assert_check_partials(cpd)

@unittest.skipIf(matplotlib is None, "This test requires matplotlib")
def test_brachistochrone_for_docs_gauss_lobatto(self):
import openmdao.api as om
from openmdao.utils.assert_utils import assert_near_equal
Expand Down Expand Up @@ -129,6 +132,7 @@ def test_brachistochrone_for_docs_gauss_lobatto(self):

plt.show()

@unittest.skipIf(matplotlib is None, "This test requires matplotlib")
def test_brachistochrone_for_docs_radau(self):
import openmdao.api as om
from openmdao.utils.assert_utils import assert_near_equal
Expand Down
Original file line number Diff line number Diff line change
@@ -1,14 +1,17 @@
import os
import unittest

import matplotlib
import matplotlib.pyplot as plt
try:
import matplotlib
import matplotlib.pyplot as plt

from openmdao.utils.testing_utils import use_tempdirs
matplotlib.use('Agg')
plt.style.use('ggplot')
except ImportError:
matplotlib = None


matplotlib.use('Agg')
plt.style.use('ggplot')
from openmdao.utils.testing_utils import use_tempdirs


@use_tempdirs
Expand Down Expand Up @@ -47,6 +50,7 @@ def test_brachistochrone_partials(self):
cpd = p.check_partials(method='cs', compact_print=True)
assert_check_partials(cpd)

@unittest.skipIf(matplotlib is None, "This test requires matplotlib")
def test_brachistochrone_static_gravity(self):
import openmdao.api as om
from openmdao.utils.assert_utils import assert_near_equal
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,10 @@
import unittest

try:
import matplotlib
except ImportError:
matplotlib = None

import numpy as np
import openmdao.api as om
from openmdao.utils.testing_utils import use_tempdirs, require_pyoptsparse
Expand Down Expand Up @@ -47,6 +52,7 @@ def compute_partials(self, inputs, jacobian):
class TestBrachistochroneTandemPhases(unittest.TestCase):

@require_pyoptsparse(optimizer='SLSQP')
@unittest.skipIf(matplotlib is None, "This test requires matplotlib")
def test_brachistochrone_tandem_phases(self):
from dymos.examples.brachistochrone.brachistochrone_ode import BrachistochroneODE

Expand Down
Original file line number Diff line number Diff line change
@@ -1,11 +1,17 @@
import unittest

try:
import matplotlib
except ImportError:
matplotlib = None

from openmdao.utils.testing_utils import use_tempdirs


@use_tempdirs
class TestBrachistochroneUpstreamControl(unittest.TestCase):

@unittest.skipIf(matplotlib is None, "This test requires matplotlib")
def test_brachistochrone_upstream_control(self):
import numpy as np
import openmdao.api as om
Expand Down
Original file line number Diff line number Diff line change
@@ -1,11 +1,17 @@
import unittest

try:
import matplotlib
except ImportError:
matplotlib = None

from openmdao.utils.testing_utils import use_tempdirs


@use_tempdirs
class TestBrachistochroneUpstreamState(unittest.TestCase):

@unittest.skipIf(matplotlib is None, "This test requires matplotlib")
def test_brachistochrone_upstream_state(self):
import openmdao.api as om
from openmdao.utils.assert_utils import assert_near_equal
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,11 @@

import numpy as np

try:
import matplotlib
except ImportError:
matplotlib = None

import openmdao.api as om
from openmdao.utils.testing_utils import use_tempdirs

Expand Down Expand Up @@ -110,6 +115,7 @@ def compute_partials(self, inputs, partials):
@use_tempdirs
class TestBrachistochroneControlRateTargets(unittest.TestCase):

@unittest.skipIf(matplotlib is None, "This test requires matplotlib")
def test_brachistochrone_control_rate_targets_gauss_lobatto(self):
import matplotlib.pyplot as plt
plt.switch_backend('Agg')
Expand Down Expand Up @@ -206,6 +212,7 @@ def test_brachistochrone_control_rate_targets_gauss_lobatto(self):

plt.show()

@unittest.skipIf(matplotlib is None, "This test requires matplotlib")
def test_brachistochrone_control_rate_targets_radau(self):
import matplotlib.pyplot as plt
plt.switch_backend('Agg')
Expand Down Expand Up @@ -303,6 +310,7 @@ def test_brachistochrone_control_rate_targets_radau(self):
@use_tempdirs
class TestBrachistochroneExplicitControlRateTargets(unittest.TestCase):

@unittest.skipIf(matplotlib is None, "This test requires matplotlib")
def test_brachistochrone_control_rate_targets_gauss_lobatto(self):
import matplotlib.pyplot as plt
plt.switch_backend('Agg')
Expand Down Expand Up @@ -396,6 +404,7 @@ def test_brachistochrone_control_rate_targets_gauss_lobatto(self):

plt.show()

@unittest.skipIf(matplotlib is None, "This test requires matplotlib")
def test_brachistochrone_control_rate_targets_radau(self):
import matplotlib.pyplot as plt
plt.switch_backend('Agg')
Expand Down Expand Up @@ -494,6 +503,7 @@ def test_brachistochrone_control_rate_targets_radau(self):
@use_tempdirs
class TestBrachistochronePolynomialControlRateTargets(unittest.TestCase):

@unittest.skipIf(matplotlib is None, "This test requires matplotlib")
def test_brachistochrone_polynomial_control_rate_targets_gauss_lobatto(self):
import matplotlib.pyplot as plt
plt.switch_backend('Agg')
Expand Down Expand Up @@ -587,6 +597,7 @@ def test_brachistochrone_polynomial_control_rate_targets_gauss_lobatto(self):

plt.show()

@unittest.skipIf(matplotlib is None, "This test requires matplotlib")
def test_brachistochrone_polynomial_control_rate_targets_radau(self):
import matplotlib.pyplot as plt
plt.switch_backend('Agg')
Expand Down Expand Up @@ -685,6 +696,7 @@ def test_brachistochrone_polynomial_control_rate_targets_radau(self):
@use_tempdirs
class TestBrachistochronePolynomialControlExplicitRateTargets(unittest.TestCase):

@unittest.skipIf(matplotlib is None, "This test requires matplotlib")
def test_brachistochrone_polynomial_control_rate_targets_gauss_lobatto(self):
import matplotlib.pyplot as plt
plt.switch_backend('Agg')
Expand Down Expand Up @@ -778,6 +790,7 @@ def test_brachistochrone_polynomial_control_rate_targets_gauss_lobatto(self):

plt.show()

@unittest.skipIf(matplotlib is None, "This test requires matplotlib")
def test_brachistochrone_polynomial_control_rate_targets_radau(self):
import matplotlib.pyplot as plt
plt.switch_backend('Agg')
Expand Down Expand Up @@ -876,6 +889,7 @@ def test_brachistochrone_polynomial_control_rate_targets_radau(self):
@use_tempdirs
class TestBrachistochronePolynomialControlExplicitRate2Targets(unittest.TestCase):

@unittest.skipIf(matplotlib is None, "This test requires matplotlib")
def test_brachistochrone_polynomial_control_rate_targets_gauss_lobatto(self):
import matplotlib.pyplot as plt
plt.switch_backend('Agg')
Expand Down
Original file line number Diff line number Diff line change
@@ -1,11 +1,17 @@
import unittest

try:
import matplotlib
except ImportError:
matplotlib = None

from openmdao.utils.testing_utils import use_tempdirs


@use_tempdirs
class TestBrachistochroneExternalControl(unittest.TestCase):

@unittest.skipIf(matplotlib is None, "This test requires matplotlib")
def test_brachistochrone_external_control(self):
import numpy as np
import openmdao.api as om
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,11 @@
import os
import unittest

try:
import matplotlib
except ImportError:
matplotlib = None

from openmdao.utils.testing_utils import use_tempdirs


Expand All @@ -13,6 +18,7 @@ def tearDownClass(cls):
if os.path.exists(filename):
os.remove(filename)

@unittest.skipIf(matplotlib is None, "This test requires matplotlib")
def test_brachistochrone_recording(self):
import matplotlib
matplotlib.use('Agg')
Expand Down
Original file line number Diff line number Diff line change
@@ -1,18 +1,12 @@
import os
import unittest

import matplotlib
import openmdao.api as om
import matplotlib.pyplot as plt
import dymos as dm

from openmdao.utils.testing_utils import use_tempdirs
from openmdao.utils.assert_utils import assert_near_equal
from dymos.examples.brachistochrone.brachistochrone_ode import BrachistochroneODE

matplotlib.use('Agg')
plt.style.use('ggplot')


@use_tempdirs
class TestBrachistochroneExprPathConstraint(unittest.TestCase):
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,11 @@

import numpy as np

try:
import matplotlib
except ImportError:
matplotlib = None

import openmdao.api as om
from openmdao.utils.testing_utils import use_tempdirs

Expand Down Expand Up @@ -65,6 +70,7 @@ def compute_partials(self, inputs, jacobian):
@use_tempdirs
class TestBrachistochroneQuickStart(unittest.TestCase):

@unittest.skipIf(matplotlib is None, "This test requires matplotlib")
def test_brachistochrone_quick_start(self):
import numpy as np
import openmdao.api as om
Expand Down
Original file line number Diff line number Diff line change
@@ -1,20 +1,13 @@
import os
import unittest

import matplotlib
import matplotlib.pyplot as plt

from openmdao.utils.testing_utils import use_tempdirs

import openmdao.api as om
import dymos as dm
from dymos.examples.brachistochrone.brachistochrone_ode import BrachistochroneODE


matplotlib.use('Agg')
plt.style.use('ggplot')


@use_tempdirs
class TestBrachistochroneStaticGravity(unittest.TestCase):

Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,5 @@
import unittest

import matplotlib
import matplotlib.pyplot as plt

import openmdao.api as om
from openmdao.utils.assert_utils import assert_near_equal
from openmdao.utils.testing_utils import use_tempdirs
Expand All @@ -12,10 +9,6 @@
import BrachistochroneVectorStatesODE


SHOW_PLOTS = True
matplotlib.use('Agg')


@use_tempdirs
class TestBrachistochroneVectorBoundaryConstraints(unittest.TestCase):

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,6 @@

import numpy as np

import matplotlib.pyplot as plt

import openmdao.api as om
from openmdao.utils.assert_utils import assert_near_equal
from openmdao.utils.testing_utils import use_tempdirs
Expand Down

0 comments on commit 4e39ef9

Please sign in to comment.