forked from PyAV-Org/PyAV
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathtest_errors.py
More file actions
67 lines (58 loc) · 2.44 KB
/
Copy pathtest_errors.py
File metadata and controls
67 lines (58 loc) · 2.44 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
import errno
import traceback
import av
from .common import TestCase, is_windows
class TestErrorBasics(TestCase):
def test_stringify(self):
for cls in (av.ValueError, av.FileNotFoundError, av.DecoderNotFoundError):
e = cls(1, "foo")
self.assertEqual(str(e), "[Errno 1] foo")
self.assertEqual(repr(e), "{}(1, 'foo')".format(cls.__name__))
self.assertEqual(
traceback.format_exception_only(cls, e)[-1],
"{}{}: [Errno 1] foo\n".format(
"av.error.",
cls.__name__,
),
)
for cls in (av.ValueError, av.FileNotFoundError, av.DecoderNotFoundError):
e = cls(1, "foo", "bar.txt")
self.assertEqual(str(e), "[Errno 1] foo: 'bar.txt'")
self.assertEqual(repr(e), "{}(1, 'foo', 'bar.txt')".format(cls.__name__))
self.assertEqual(
traceback.format_exception_only(cls, e)[-1],
"{}{}: [Errno 1] foo: 'bar.txt'\n".format(
"av.error.",
cls.__name__,
),
)
def test_bases(self):
self.assertTrue(issubclass(av.ValueError, ValueError))
self.assertTrue(issubclass(av.ValueError, av.FFmpegError))
self.assertTrue(issubclass(av.FileNotFoundError, FileNotFoundError))
self.assertTrue(issubclass(av.FileNotFoundError, OSError))
self.assertTrue(issubclass(av.FileNotFoundError, av.FFmpegError))
def test_filenotfound(self):
"""Catch using builtin class on Python 3.3"""
try:
av.open("does not exist")
except FileNotFoundError as e:
self.assertEqual(e.errno, errno.ENOENT)
if is_windows:
self.assertTrue(
e.strerror
in ["Error number -2 occurred", "No such file or directory"]
)
else:
self.assertEqual(e.strerror, "No such file or directory")
self.assertEqual(e.filename, "does not exist")
else:
self.fail("no exception raised")
def test_buffertoosmall(self):
"""Throw an exception from an enum."""
try:
av.error.err_check(-av.error.BUFFER_TOO_SMALL.value)
except av.BufferTooSmallError as e:
self.assertEqual(e.errno, av.error.BUFFER_TOO_SMALL.value)
else:
self.fail("no exception raised")