13551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)# Copyright 2013 The Chromium Authors. All rights reserved. 23551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)# Use of this source code is governed by a BSD-style license that can be 33551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)# found in the LICENSE file. 43551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)import unittest 53551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) 63551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)from telemetry.core import gpu_device 73551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) 86e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) 93551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)class TestGPUDevice(unittest.TestCase): 103551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) def testConstruction(self): 113551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) device = gpu_device.GPUDevice(1000, 2000, 'test_vendor', 'test_device') 123551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) self.assertEquals(device.vendor_id, 1000) 133551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) self.assertEquals(device.device_id, 2000) 143551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) self.assertEquals(device.vendor_string, 'test_vendor') 153551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) self.assertEquals(device.device_string, 'test_device') 163551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) 173551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) def testFromDict(self): 183551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) dictionary = { 'vendor_id': 3000, 193551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) 'device_id': 4000, 203551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) 'vendor_string': 'test_vendor_2', 213551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) 'device_string': 'test_device_2' } 223551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) device = gpu_device.GPUDevice.FromDict(dictionary) 233551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) self.assertEquals(device.vendor_id, 3000) 243551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) self.assertEquals(device.device_id, 4000) 253551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) self.assertEquals(device.vendor_string, 'test_vendor_2') 263551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) self.assertEquals(device.device_string, 'test_device_2') 273551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) 283551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) def testMissingAttrsFromDict(self): 293551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) data = { 303551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) 'vendor_id': 1, 313551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) 'device_id': 2, 323551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) 'vendor_string': 'a', 333551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) 'device_string': 'b' 343551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) } 353551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) 363551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) for k in data: 373551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) data_copy = data.copy() 383551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) del data_copy[k] 393551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) try: 403551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) gpu_device.GPUDevice.FromDict(data_copy) 413551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) self.fail('Should raise exception if attribute "%s" is missing' % k) 423551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) except AssertionError: 433551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) raise 443551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) except: 453551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) pass 46