blob: f0e014f8a8762ed2b8021042591ad6143e636f66 [file] [log] [blame]
import datetime
from django.core.files.storage import FileSystemStorage
from django.db import models
class IntegerListField(models.Field):
def __init__(self, *args, **kwargs):
kwargs['editable'] = False
super(IntegerListField, self).__init__(*args, **kwargs)
def db_type(self, connection):
return 'text'
def from_db_value(self, value, expression, connection):
if not value:
return []
return [int(x) for x in value.split(',')]
def to_python(self, value):
if isinstance(value, list):
return value
if not value:
return []
return [int(x) for x in value.split(',')]
def get_prep_value(self, value):
if not value:
return ''
return ','.join(str(int(x)) for x in value)
class TestRailTestRun(models.Model):
project_name = models.CharField(max_length=300,
default="Mirantis Cloud Platform")
plan_name = models.CharField(max_length=300, default="[MCP2.0]OSCORE")
run_name = models.CharField(max_length=300, blank=True)
test_pattern = models.CharField(max_length=300, blank=True)
run_id = models.CharField(max_length=300)
checked_tests = IntegerListField(default=list())
created_by_id = models.IntegerField(default='109')
filter_func = models.TextField(null=True, blank=True)
ip_filter = models.BooleanField(default=True)
uuid_filter = models.BooleanField(default=True)
filter_last_traceback = models.BooleanField(default=False)
timestamp = models.DateField(default=datetime.date.today())
@property
def text_filters(self):
return {
"filter_last_traceback": self.filter_last_traceback,
"uuid_filter": self.uuid_filter,
"ip_filter": self.ip_filter,
"filter_func": self.filter_func,
}
@property
def testrail_filters(self):
return {
"created_by_id": self.created_by_id,
"created_before": self.timestamp,
"run_name": self.run_name,
"plan_name": self.plan_name,
"test_pattern": self.test_pattern,
}
fs = FileSystemStorage()
class TestRailReport(models.Model):
path = models.FileField(storage=fs, null=True, blank=True, max_length=500)
report_name = models.CharField(max_length=300)
finished = models.BooleanField(default=False)
created_at = models.DateTimeField(auto_now_add=True)
class ActionLog(models.Model):
name = models.CharField(max_length=500)
date = models.DateTimeField(null=True)