diff options
Diffstat (limited to 'testmanager')
-rw-r--r-- | testmanager/testmanualrunner/models.py | 31 | ||||
-rw-r--r-- | testmanager/testmanualrunner/serializers.py | 18 | ||||
-rw-r--r-- | testmanager/testplanner/serializers.py | 8 | ||||
-rw-r--r-- | testmanager/testrunner/models.py | 4 |
4 files changed, 39 insertions, 22 deletions
diff --git a/testmanager/testmanualrunner/models.py b/testmanager/testmanualrunner/models.py index 8125144..ae0d35f 100644 --- a/testmanager/testmanualrunner/models.py +++ b/testmanager/testmanualrunner/models.py @@ -23,6 +23,9 @@ class TestRun(models.Model): return ret + def get_run_results(self): + return self.results.all() + def get_bug_count(self): b = Bug.objects.filter(testrunresult__in=list(self.results.all())) return b.distinct().count() @@ -30,21 +33,23 @@ class TestRun(models.Model): def update_results(self): test_definition_restuls_ids = self.results\ .values_list('test_definition', flat=True) - test_definition_ids = self.test_plan.testplantestdefinition_set\ - .values_list('test_definition_id', flat=True) + # execute this code only on initial object creation + if not test_definition_restuls_ids: + test_definition_ids = self.test_plan.testplantestdefinition_set\ + .values_list('test_definition_id', flat=True) - for test_definition_id in set(test_definition_ids) - set(test_definition_restuls_ids): - TestRunResult.objects.create( - test_run=self, - test_definition_id=test_definition_id - ) + for test_definition_id in set(test_definition_ids) - set(test_definition_restuls_ids): + TestRunResult.objects.create( + test_run=self, + test_definition_id=test_definition_id + ) - for test_definition_id in set(test_definition_restuls_ids) - set(test_definition_ids): - TestRunResult.objects.get( - test_run=self, - test_definition_id=test_definition_id - ).delete() + for test_definition_id in set(test_definition_restuls_ids) - set(test_definition_ids): + TestRunResult.objects.get( + test_run=self, + test_definition_id=test_definition_id + ).delete() def save(self, *args, **kwargs): super(TestRun, self).save(*args, **kwargs) @@ -57,6 +62,8 @@ class TestRunResult(models.Model): test_run = models.ForeignKey('TestRun', related_name='results') test_definition = models.ForeignKey('testplanner.TestDefinition') + # add revision field so the proper data is taken into use + #test_definition_revision = models.ForeignKey('testplanner.TestDefinitionRevision') status = models.ForeignKey('TestStatus', null=True, blank=True) bugs = models.ManyToManyField('testrunner.Bug', blank=True) diff --git a/testmanager/testmanualrunner/serializers.py b/testmanager/testmanualrunner/serializers.py index e445268..4d2f958 100644 --- a/testmanager/testmanualrunner/serializers.py +++ b/testmanager/testmanualrunner/serializers.py @@ -19,7 +19,7 @@ from rest_framework import serializers from testmanager.testmanualrunner import models from testmanager.testrunner.serializers import BugSerializer -from testmanager.testplanner.serializers import TestPlanSerializer +from testmanager.testplanner.serializers import TestPlanSimpleSerializer, TestDefinitionSerializer class TestRunSimpleSerializer(serializers.ModelSerializer): @@ -29,20 +29,22 @@ class TestRunSimpleSerializer(serializers.ModelSerializer): model = models.TestRun +class TestRunResultSerializer(serializers.ModelSerializer): + bugs = BugSerializer(many=True, read_only=True) + test_definition = TestDefinitionSerializer(read_only=True) + class Meta: + model = models.TestRunResult + + class TestRunSerializer(serializers.ModelSerializer): result = serializers.Field(source='get_results') - test_plan = TestPlanSerializer() + results = TestRunResultSerializer(source='get_run_results') + test_plan = TestPlanSimpleSerializer(read_only=True) class Meta: model = models.TestRun -class TestRunResultSerializer(serializers.ModelSerializer): - bugs = BugSerializer(many=True, read_only=True) - class Meta: - model = models.TestRunResult - - class TestStatusSerializer(serializers.ModelSerializer): class Meta: model = models.TestStatus diff --git a/testmanager/testplanner/serializers.py b/testmanager/testplanner/serializers.py index b53b90b..3351a09 100644 --- a/testmanager/testplanner/serializers.py +++ b/testmanager/testplanner/serializers.py @@ -25,6 +25,14 @@ class DeviceSerializer(serializers.ModelSerializer): model = models.Device +class TestPlanSimpleSerializer(serializers.ModelSerializer): + class Meta: + model = models.TestPlan + + owner = serializers.RelatedField() + device= serializers.RelatedField() + + class TestPlanSerializer(serializers.ModelSerializer): class Meta: model = models.TestPlan diff --git a/testmanager/testrunner/models.py b/testmanager/testrunner/models.py index 9b5f8fd..4b5d3d1 100644 --- a/testmanager/testrunner/models.py +++ b/testmanager/testrunner/models.py @@ -270,8 +270,8 @@ class Bug(models.Model): try: buglist = proxy.Bug.get(query_dict) for bug in buglist['bugs']: - if bug['id'] == self.alias: - self.summary = bug['summry'] + if str(bug['id']) == self.alias: + self.summary = bug['summary'] self.status = bug['status'] self.severity = bug['severity'] except: |