1# Exception classes used when testing the Python pretty printers.
2#
3# Copyright (C) 2016-2022 Free Software Foundation, Inc.
4# This file is part of the GNU C Library.
5#
6# The GNU C Library is free software; you can redistribute it and/or
7# modify it under the terms of the GNU Lesser General Public
8# License as published by the Free Software Foundation; either
9# version 2.1 of the License, or (at your option) any later version.
10#
11# The GNU C Library is distributed in the hope that it will be useful,
12# but WITHOUT ANY WARRANTY; without even the implied warranty of
13# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
14# Lesser General Public License for more details.
15#
16# You should have received a copy of the GNU Lesser General Public
17# License along with the GNU C Library; if not, see
18# <https://www.gnu.org/licenses/>.
19
20class NoLineError(Exception):
21    """Custom exception to indicate that a test file doesn't contain
22    the requested string.
23    """
24
25    def __init__(self, file_name, string):
26        """Constructor.
27
28        Args:
29            file_name (string): The name of the test file.
30            string (string): The string that was requested.
31        """
32
33        super(NoLineError, self).__init__()
34        self.file_name = file_name
35        self.string = string
36
37    def __str__(self):
38        """Shows a readable representation of the exception."""
39
40        return ('File {0} has no line containing the following string: {1}'
41                .format(self.file_name, self.string))
42
43class DebugError(Exception):
44    """Custom exception to indicate that a required debugging symbol is missing.
45    """
46
47    def __init__(self, symbol):
48        """Constructor.
49
50        Args:
51            symbol (string): The name of the entity whose debug info is missing.
52        """
53
54        super(DebugError, self).__init__()
55        self.symbol = symbol
56
57    def __str__(self):
58        """Shows a readable representation of the exception."""
59
60        return ('The required debugging information for {0} is missing.'
61                .format(self.symbol))
62