diff --git a/package/AUTHORS b/package/AUTHORS index e23f2afcf2..6c9b9fe93c 100644 --- a/package/AUTHORS +++ b/package/AUTHORS @@ -265,6 +265,7 @@ Chronological list of authors - Raúl Lois-Cuns - Pranay Pelapkar - Shreejan Dolai + - Tanisha Dubey External code ------------- diff --git a/package/CHANGELOG b/package/CHANGELOG index 642e717b85..e51a441d98 100644 --- a/package/CHANGELOG +++ b/package/CHANGELOG @@ -15,7 +15,7 @@ The rules for this file: ------------------------------------------------------------------------------- ??/??/?? IAlibay, orbeckst, marinegor, tylerjereddy, ljwoods2, marinegor, - spyke7, talagayev + spyke7, talagayev, tanii1125 * 2.11.0 diff --git a/package/MDAnalysis/analysis/msd.py b/package/MDAnalysis/analysis/msd.py index 3ce9eecaa7..03fc6b0010 100644 --- a/package/MDAnalysis/analysis/msd.py +++ b/package/MDAnalysis/analysis/msd.py @@ -382,14 +382,11 @@ def _parse_msd_type(self): "xyz": [0, 1, 2], } - self.msd_type = self.msd_type.lower() - try: - self._dim = keys[self.msd_type] - except KeyError: + self._dim = keys[self.msd_type.lower()] + except (AttributeError, KeyError): raise ValueError( - "invalid msd_type: {} specified, please specify one of xyz, " - "xy, xz, yz, x, y, z".format(self.msd_type) + f"Invalid msd_type {self.msd_type}, must be a string and one of: xyz, xy, xz, yz, x, y, z" ) self.dim_fac = len(self._dim) diff --git a/testsuite/MDAnalysisTests/analysis/test_msd.py b/testsuite/MDAnalysisTests/analysis/test_msd.py index 0e8c9dad53..4a0a5717a3 100644 --- a/testsuite/MDAnalysisTests/analysis/test_msd.py +++ b/testsuite/MDAnalysisTests/analysis/test_msd.py @@ -117,9 +117,11 @@ def test_updating_ag_rejected(self, u): with pytest.raises(TypeError, match=errmsg): m = MSD(updating_ag, msd_type="xyz", fft=False) - @pytest.mark.parametrize("msdtype", ["foo", "bar", "yx", "zyx"]) + @pytest.mark.parametrize( + "msdtype", ["foo", "bar", "yx", "zyx", 123, "", " xy "] + ) def test_msdtype_error(self, u, SELECTION, msdtype): - errmsg = f"invalid msd_type: {msdtype}" + errmsg = f"Invalid msd_type {msdtype}, must be a string and one of: xyz, xy, xz, yz, x, y, z" with pytest.raises(ValueError, match=errmsg): m = MSD(u, SELECTION, msd_type=msdtype)