You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
62 lines
2.3 KiB
62 lines
2.3 KiB
7 months ago
|
#!/usr/bin/python2
|
||
|
# pylint: disable=missing-docstring
|
||
|
|
||
|
import unittest
|
||
|
|
||
|
import common
|
||
|
from autotest_lib.frontend import setup_django_environment
|
||
|
from autotest_lib.frontend import setup_test_environment
|
||
|
from autotest_lib.frontend.tko import models
|
||
|
|
||
|
|
||
|
class TKOTestTest(unittest.TestCase):
|
||
|
|
||
|
def setUp(self):
|
||
|
setup_test_environment.set_up()
|
||
|
self.machine1 = models.Machine.objects.create(hostname='myhost')
|
||
|
self.good_status = models.Status.objects.create(word='GOOD')
|
||
|
kernel_name = 'mykernel1'
|
||
|
self.kernel1 = models.Kernel.objects.create(kernel_hash=kernel_name,
|
||
|
base=kernel_name,
|
||
|
printable=kernel_name)
|
||
|
self.job1 = models.Job.objects.create(
|
||
|
tag='1-myjobtag1', label='myjob1',
|
||
|
username='myuser', machine=self.machine1,
|
||
|
afe_job_id=1)
|
||
|
self.job1_test1 = models.Test.objects.create(
|
||
|
job=self.job1, test='mytest1',
|
||
|
kernel=self.kernel1,
|
||
|
status=self.good_status,
|
||
|
machine=self.machine1)
|
||
|
|
||
|
|
||
|
def tearDown(self):
|
||
|
setup_test_environment.tear_down()
|
||
|
|
||
|
|
||
|
def _get_attributes(self, test):
|
||
|
models.Test.objects.populate_relationships(
|
||
|
[test], models.TestAttribute, 'attribute_list')
|
||
|
return dict((attribute.attribute, attribute.value)
|
||
|
for attribute in test.attribute_list)
|
||
|
|
||
|
def test_delete_attribute(self):
|
||
|
test1 = self.job1_test1
|
||
|
test1.set_attribute('test_attribute1', 'test_value1')
|
||
|
|
||
|
attributes = self._get_attributes(test1)
|
||
|
self.assertEquals(attributes['test_attribute1'], 'test_value1')
|
||
|
|
||
|
test1.set_or_delete_attribute('test_attribute1', None)
|
||
|
attributes = self._get_attributes(test1)
|
||
|
self.assertNotIn('test_attribute1', attributes.keys())
|
||
|
|
||
|
|
||
|
def test_set_attribute(self):
|
||
|
# Verify adding static attribute in model_logic doesn't break TKO Test.
|
||
|
test1 = self.job1_test1
|
||
|
test1.set_attribute('test_attribute1', 'test_value1')
|
||
|
test1.set_or_delete_attribute('test_attribute1', 'test_value2')
|
||
|
attributes = self._get_attributes(test1)
|
||
|
self.assertEquals(attributes['test_attribute1'], 'test_value2')
|