You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 

110 lines
3.5 KiB

#!/usr/bin/env python3
import autoupload
from datetime import datetime
import os
import tempfile
import unittest
class TestVideoMethods(unittest.TestCase):
platform1 = "platform"
platform2 = "otherplatform"
def test_nextVideo(self):
with TestFileContent(
"""[videos]
Episode1 = {}
"""
) as videoFile:
auto = autoupload.AutoUpload(videoFile.filename)
self.assertEqual(auto.nextVideo(self.platform1), "/tmp/Episode1.mp4")
self.assertEqual(auto.nextVideo(self.platform2), "/tmp/Episode1.mp4")
def test_success(self):
with TestFileContent(
"""[videos]
Episode1 = {}
"""
) as videoFile:
auto = autoupload.AutoUpload(videoFile.filename)
auto.nextVideo(self.platform1)
auto.success(self.platform1, "https://platform/url", datetime(2020, 8, 28, 17, 54, 31))
self.assertEqual(auto.nextVideo(self.platform1), False)
self.assertEqual(auto.nextVideo(self.platform2), "/tmp/Episode1.mp4")
# TODO: read file and check formatting and content?
# print("content of file")
# with open(videoFile.filename, "r") as file:
# print(file.readlines())
def test_error(self):
with TestFileContent(
"""[videos]
Episode1 = {}
"""
) as videoFile:
auto = autoupload.AutoUpload(videoFile.filename)
auto.nextVideo(self.platform1)
auto.error(self.platform1, "https://platform/url")
self.assertEqual(auto.nextVideo(self.platform1), "/tmp/Episode1.mp4")
self.assertEqual(auto.nextVideo(self.platform2), "/tmp/Episode1.mp4")
# TODO: read file and check formatting and content?
# print("content of file")
# with open(videoFile.filename, "r") as file:
# print(file.readlines())
def test_errorThenSuccess(self):
with TestFileContent(
"""[videos]
Episode1 = {}
"""
) as videoFile:
auto = autoupload.AutoUpload(videoFile.filename)
auto.nextVideo(self.platform1)
auto.error(self.platform1, "https://platform/url")
self.assertEqual(auto.nextVideo(self.platform1), "/tmp/Episode1.mp4")
self.assertEqual(auto.nextVideo(self.platform2), "/tmp/Episode1.mp4")
# TODO: read file and check formatting and content?
print("content of file")
with open(videoFile.filename, "r") as file:
print(file.readlines())
auto.success(self.platform1, "https://platform/url", datetime(2020, 8, 28, 17, 54, 31))
self.assertEqual(auto.nextVideo(self.platform1), False)
self.assertEqual(auto.nextVideo(self.platform2), "/tmp/Episode1.mp4")
# TODO: read file and check formatting and content?
# TODO: check the key "platform-error" is not present after a success
print("content of file")
with open(videoFile.filename, "r") as file:
print(file.readlines())
# https://stackoverflow.com/a/54053967
class TestFileContent:
def __init__(self, content):
self.file = tempfile.NamedTemporaryFile(mode="w", delete=False)
with self.file as f:
f.write(content)
@property
def filename(self):
return self.file.name
def __enter__(self):
return self
def __exit__(self, type, value, traceback):
os.unlink(self.filename)
if __name__ == '__main__':
unittest.main()