diff --git a/package/MDAnalysis/guesser/default_guesser.py b/package/MDAnalysis/guesser/default_guesser.py index f49e75b24c..c2fe3166e1 100644 --- a/package/MDAnalysis/guesser/default_guesser.py +++ b/package/MDAnalysis/guesser/default_guesser.py @@ -109,6 +109,7 @@ import re +from ..exceptions import NoDataError from ..lib import distances from . import tables @@ -218,15 +219,15 @@ def guess_masses(self, atom_types=None, indices_to_guess=None): if atom_types is None: try: atom_types = self._universe.atoms.elements - except AttributeError: + except NoDataError: try: atom_types = self._universe.atoms.types - except AttributeError: + except NoDataError: try: atom_types = self.guess_types( atom_types=self._universe.atoms.names) - except ValueError: - raise ValueError( + except NoDataError: + raise NoDataError( "there is no reference attributes" " (elements, types, or names)" " in this universe to guess mass from") @@ -291,8 +292,8 @@ def guess_types(self, atom_types=None, indices_to_guess=None): if atom_types is None: try: atom_types = self._universe.atoms.names - except AttributeError: - raise ValueError( + except NoDataError: + raise NoDataError( "there is no reference attributes in this universe" "to guess types from") diff --git a/testsuite/MDAnalysisTests/guesser/test_default_guesser.py b/testsuite/MDAnalysisTests/guesser/test_default_guesser.py index 2aacb28d4f..3177ecd44e 100644 --- a/testsuite/MDAnalysisTests/guesser/test_default_guesser.py +++ b/testsuite/MDAnalysisTests/guesser/test_default_guesser.py @@ -26,7 +26,8 @@ from numpy.testing import assert_equal, assert_allclose import numpy as np -from MDAnalysis.core.topologyattrs import Angles, Atomtypes, Atomnames, Masses +from MDAnalysis.core.topologyattrs import Angles, Atomtypes, Atomnames +from MDAnalysis.exceptions import NoDataError from MDAnalysis.guesser.default_guesser import DefaultGuesser from MDAnalysis.core.topology import Topology from MDAnalysisTests import make_Universe @@ -82,7 +83,7 @@ def test_guess_atom_mass(self, default_guesser): def test_guess_masses_with_no_reference_elements(self): u = mda.Universe.empty(3) - with pytest.raises(ValueError, + with pytest.raises(NoDataError, match=('there is no reference attributes ')): u.guess_TopologyAttrs('default', ['masses']) @@ -119,7 +120,7 @@ def test_guess_elements_from_no_data(self): top = Topology(5) msg = "there is no reference attributes in this universe" "to guess types from" - with pytest.raises(ValueError, match=(msg)): + with pytest.raises(NoDataError, match=(msg)): mda.Universe(top, to_guess=['types']) @pytest.mark.parametrize('name, element', ( @@ -148,7 +149,7 @@ def test_guess_charge(default_guesser): def test_guess_bonds_Error(): u = make_Universe(trajectory=True) msg = "This Universe does not contain name information" - with pytest.raises(ValueError, match=msg): + with pytest.raises(NoDataError, match=msg): u.guess_TopologyAttrs(to_guess=['bonds'])