logs-collector/logs_collector/collector/tests/test_models.py
2023-08-30 16:38:28 +09:00

59 lines
1.8 KiB
Python

from pathlib import Path
from django.test import TestCase
from django.contrib.auth.models import User
from django.core.files.base import ContentFile
from django.conf import settings
from collector.models import Platform, Ticket, Archive
def delete_test_files(ticket):
test_file = settings.MEDIA_ROOT / Path(str(ticket))
test_file.unlink(missing_ok=True)
class TestModels(TestCase):
def setUp(self):
# create test user:
self.test_user = User.objects.create_user(
username='oops',
password='hG2wS231YPWmj3'
)
# create test platform and ticket:
self.test_platform = Platform.objects.create(
name='vm6',
pretty_name='VMmanager 6'
)
self.test_ticket = Ticket.objects.create(
number=1488228,
platform=self.test_platform,
user=self.test_user
)
def test_correct_platform_fields(self):
self.assertEqual(self.test_platform.name, 'vm6')
self.assertEqual(self.test_platform.pretty_name, 'VMmanager 6')
def test_correct_ticket_fields(self):
self.assertEqual(self.test_ticket.number, 1488228)
self.assertEqual(self.test_ticket.attempts, 5)
self.assertEqual(
self.test_ticket.platform.name,
self.test_platform.name
)
def test_correct_archive_fields(self):
test_archive = Archive.objects.create(
file=ContentFile(b'...', name='test.tar.gz'),
ticket=self.test_ticket
)
triple_dots_md5 = '2f43b42fd833d1e77420a8dae7419000'
self.assertEquals(test_archive.md5, triple_dots_md5)
self.assertEquals(
test_archive.file.name,
f'{self.test_ticket.number}/test.tar.gz'
)
# ? workaround delete test file:
delete_test_files(test_archive.file)