cr-connect-workflow/tests/files/test_spec_file_service.py

56 lines
2.6 KiB
Python
Raw Normal View History

import datetime
from tests.base_test import BaseTest
2022-04-13 12:22:30 +00:00
from crc.models.file import FileType
from crc.services.spec_file_service import SpecFileService
class TestSpecFileService(BaseTest):
def test_get_spec_files(self):
spec = self.load_test_spec("random_fact")
spec_files = SpecFileService().get_files(spec)
self.assertEqual(2, len(spec_files))
spec_files = SpecFileService().get_files(spec, "random_fact.bpmn")
self.assertEqual(1, len(spec_files))
self.assertEqual("text/xml", spec_files[0].content_type)
self.assertEqual("random_fact.bpmn", spec_files[0].name)
self.assertTrue(spec_files[0].size > 0)
self.assertEqual(FileType.bpmn, spec_files[0].type)
self.assertIsInstance(spec_files[0].last_modified, datetime.datetime)
def test_add_file(self):
spec_random = self.load_test_spec("random_fact")
spec_dt = self.load_test_spec("decision_table")
data = SpecFileService.get_data(spec_random, "random_fact.bpmn")
self.assertIsNotNone(data)
spec_files = SpecFileService().get_files(spec_dt)
self.assertEqual(0, len(SpecFileService().get_files(spec_dt, "random_fact.bpmn")))
SpecFileService.add_file(spec_dt, "random_fact.bpmn", data)
self.assertEqual(1, len(SpecFileService().get_files(spec_dt, "random_fact.bpmn")))
orig = SpecFileService.get_files(spec_random, "random_fact.bpmn")[0]
new = SpecFileService.get_files(spec_dt, "random_fact.bpmn")[0]
self.assertEqual(orig.size, new.size)
# This next line happens too fast now, so we can't verify the dates are different
#self.assertNotEqual(orig.last_modified, new.last_modified)
def test_set_primary_bpmn(self):
spec_random = self.load_test_spec("random_fact")
SpecFileService.set_primary_bpmn(spec_random, 'random_fact.bpmn')
self.assertEquals('random_fact.bpmn', spec_random.primary_file_name)
self.assertEquals('Process_1ds61df', spec_random.primary_process_id)
SpecFileService.set_primary_bpmn(spec_random, 'random_fact2.bpmn')
self.assertEquals('random_fact2.bpmn', spec_random.primary_file_name)
self.assertEquals('Process_SecondFact', spec_random.primary_process_id)
def test_delete_workflow_spec_file(self):
spec = self.load_test_spec("random_fact")
spec_files = SpecFileService.get_files(spec)
self.assertEqual(2, len(spec_files))
SpecFileService.delete_file(spec, "random_fact2.bpmn")
spec_files = SpecFileService.get_files(spec)
self.assertEqual(1, len(spec_files))