#!/usr/bin/python
# 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')