1# Copyright 2013 The Chromium Authors. All rights reserved. 2# Use of this source code is governed by a BSD-style license that can be 3# found in the LICENSE file. 4import unittest 5 6from telemetry.core import gpu_device 7 8 9class TestGPUDevice(unittest.TestCase): 10 def testConstruction(self): 11 device = gpu_device.GPUDevice(1000, 2000, 'test_vendor', 'test_device') 12 self.assertEquals(device.vendor_id, 1000) 13 self.assertEquals(device.device_id, 2000) 14 self.assertEquals(device.vendor_string, 'test_vendor') 15 self.assertEquals(device.device_string, 'test_device') 16 17 def testFromDict(self): 18 dictionary = { 'vendor_id': 3000, 19 'device_id': 4000, 20 'vendor_string': 'test_vendor_2', 21 'device_string': 'test_device_2' } 22 device = gpu_device.GPUDevice.FromDict(dictionary) 23 self.assertEquals(device.vendor_id, 3000) 24 self.assertEquals(device.device_id, 4000) 25 self.assertEquals(device.vendor_string, 'test_vendor_2') 26 self.assertEquals(device.device_string, 'test_device_2') 27 28 def testMissingAttrsFromDict(self): 29 data = { 30 'vendor_id': 1, 31 'device_id': 2, 32 'vendor_string': 'a', 33 'device_string': 'b' 34 } 35 36 for k in data: 37 data_copy = data.copy() 38 del data_copy[k] 39 try: 40 gpu_device.GPUDevice.FromDict(data_copy) 41 self.fail('Should raise exception if attribute "%s" is missing' % k) 42 except AssertionError: 43 raise 44 except: 45 pass 46