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 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131
|
"""
pysubs2.formats.vtt tests
"""
from textwrap import dedent
from pysubs2 import SSAFile, SSAEvent, make_time
def test_simple_write() -> None:
subs = SSAFile()
e1 = SSAEvent()
e1.start = 0
e1.end = 60000
e1.text = "An example subtitle."
e2 = SSAEvent()
e2.start = 60000
e2.end = 120000
e2.text = "Subtitle number\\Ntwo."
e3 = SSAEvent()
e3.start = 60000
e3.end = 120000
e3.text = "Invisible subtitle."
e3.is_comment = True
subs.append(e1)
subs.append(e2)
subs.append(e3)
ref = dedent("""\
WEBVTT
1
00:00:00.000 --> 00:01:00.000
An example subtitle.
2
00:01:00.000 --> 00:02:00.000
Subtitle number
two.
""")
text = subs.to_string("vtt")
assert text.strip() == ref.strip()
def test_writes_in_time_order() -> None:
subs = SSAFile()
e1 = SSAEvent()
e1.start = 0
e1.end = 60000
e1.text = "An example subtitle."
e2 = SSAEvent()
e2.start = 60000
e2.end = 120000
e2.text = "Subtitle number\\Ntwo."
subs.append(e2)
subs.append(e1)
ref = dedent("""\
WEBVTT
1
00:00:00.000 --> 00:01:00.000
An example subtitle.
2
00:01:00.000 --> 00:02:00.000
Subtitle number
two.
""")
text = subs.to_string("vtt")
assert text.strip() == ref.strip()
def test_simple_read() -> None:
text = dedent("""\
WEBVTT
1
00:00:00.000 --> 00:01:00.000
An example subtitle.
2
00:01:00.000 --> 00:02:00.000
Subtitle number
two.
""")
ref = SSAFile()
ref.append(SSAEvent(start=0, end=make_time(m=1), text="An example subtitle."))
ref.append(SSAEvent(start=make_time(m=1), end=make_time(m=2), text="Subtitle number\\Ntwo."))
subs = SSAFile.from_string(text)
assert subs.equals(ref)
def test_read_complex() -> None:
# regression test for #30
text = dedent("""\
WEBVTT
X-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:0
00:50.099 --> 00:53.299 line:85% align:middle
Cuidem do seu grupo.
Cuidem de suas fileiras.
01:54.255 --> 01:55.455 line:85% align:middle
Parem!
01:58.155 --> 01:59.555 line:85% align:middle
E, parem!
""")
ref = SSAFile()
ref.append(SSAEvent(start=make_time(s=50, ms=99), end=make_time(s=53, ms=299),
text=r"Cuidem do seu grupo.\NCuidem de suas fileiras."))
ref.append(SSAEvent(start=make_time(m=1, s=54, ms=255), end=make_time(m=1, s=55, ms=455),
text="Parem!"))
ref.append(SSAEvent(start=make_time(m=1, s=58, ms=155), end=make_time(m=1, s=59, ms=555),
text="E, parem!"))
subs = SSAFile.from_string(text)
assert subs.equals(ref)
|