| 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) |