예제 #1
0
 def setUp(self):
     self.client = login_as_su()
     self.category = AssetCategoryFactory()
     self.asset = AssetFactory()
     self.asset1 = AssetFactory()
     self.model = AssetModelFactory(category=self.category)
     self.model1 = AssetModelFactory(category=self.category)
     self.user = UserFactory()
     self.warehouse = WarehouseFactory()
     self.assetOwner = AssetOwnerFactory()
     self.asset_service = ServiceFactory()
     self.common_asset_data = {  # DC & BO common data
         'barcode': 'barcode',
         'deprecation_rate': '25',
         'invoice_date': '2011-11-14',
         'invoice_no': 'invoice_no',
         'model': self.model,
         'order_no': 'order_no',
         'owner': self.user,
         'price': '100',
         'property_of': self.assetOwner,
         'service_name': self.asset_service,
         'source': models_assets.AssetSource.shipment,
         'status': models_assets.AssetStatus.in_progress,
         'task_url': 'www.test.com',
         'user': self.user,
         'warehouse': self.warehouse,
     }
예제 #2
0
    def setUp(self):
        self.client = login_as_su()
        self.first_asset = AssetFactory(
            invoice_no='Invoice No1',
            order_no='Order No2',
            invoice_date=datetime.date(2001, 1, 1),
            support_type='Support d2d',
            provider='Provider1',
            sn='1234-1234-1234-1234',
            barcode='bc1',
        )

        self.second_asset = AssetFactory(
            invoice_no='Invoice No2',
            order_no='Order No1',
            invoice_date=datetime.date(2001, 1, 1),
            support_type='Support d2d',
            provider='Provider2',
            sn='1235-1235-1235-1235',
            barcode='bc2',
        )

        asset_model = create_model(name='Model2')
        asset_status = AssetStatus.used.id
        self.third_asset = AssetFactory(
            model=asset_model,
            invoice_no='Invoice No1',
            order_no='Order No1',
            invoice_date=datetime.date(2001, 1, 1),
            support_type='Support d2d',
            provider='Provider1',
            sn='1236-1236-1236-1236',
            barcode='bc3',
            status=asset_status,
        )
    def setUp(self):
        User.objects.create_superuser('test', '*****@*****.**', 'test')
        self.client = APIClient()
        self.client.login(username='******', password='******')

        self.rack_1 = RackFactory(max_u_height=3)
        rack_2 = RackFactory()

        self.dev_1 = DeviceFactory(name="h001.dc")
        self.dev_1.management_ip = '10.20.30.1'
        self.dev_2 = DeviceFactory(name="h002.dc")
        self.dev_2.management_ip = '10.20.30.2'

        self.asset_1 = AssetFactory(
            device_info__position=1,
            device_info__slot_no='',
            device_info__ralph_device_id=self.dev_1.id,
            service=ServiceCatalogFactory(name='Alpha Service'),
        )
        self.asset_2 = AssetFactory(
            device_info__position=2,
            device_info__slot_no='',
            device_info__ralph_device_id=self.dev_2.id,
            service=ServiceCatalogFactory(name='Beta Service'),
        )
        asset_3 = AssetFactory()

        self.rack_1.deviceinfo_set.add(self.asset_1.device_info)
        self.rack_1.deviceinfo_set.add(self.asset_2.device_info)
        rack_2.deviceinfo_set.add(asset_3.device_info)

        self.pdu_1 = AssetFactory(
            device_info__rack=self.rack_1,
            device_info__orientation=Orientation.left,
            device_info__position=0,
        )
        self.rack_1.deviceinfo_set.add(self.pdu_1.device_info)
        self.rack1_accessory = RackAccessoryFactory(
            rack=self.rack_1,
            server_room=self.rack_1.server_room,
            data_center=self.rack_1.server_room.data_center,
            orientation=Orientation.front,
        )
        self.rack2_accessory = RackAccessoryFactory(
            rack=rack_2,
            server_room=rack_2.server_room,
            data_center=rack_2.server_room.data_center,
            orientation=Orientation.front,
        )
예제 #4
0
    def setUp(self):
        self.client = login_as_su()
        self.first_asset = AssetFactory(
            invoice_date=datetime.date(2001, 1, 1),
            sn='1234-1234-1234-1234',
        )

        self.second_asset = AssetFactory(
            invoice_date=datetime.date(2002, 1, 1),
            sn='1235-1235-1235-1235',
        )

        self.third_asset = AssetFactory(
            invoice_date=datetime.date(2003, 1, 1),
            sn='1236-1236-1236-1236',
        )
    def setUp(self):
        self.client = login_as_su()
        self.category = AssetCategoryFactory()
        self.model = AssetModelFactory(category=self.category)
        self.warehouse = WarehouseFactory()
        self.first_asset = AssetFactory(model=self.model, )
        self.second_asset = AssetFactory(model=self.model, )

        self.asset_with_duplicated_sn = AssetFactory(model=self.model, )

        # Prepare required fields (formset_name, field_name)
        self.required_fields = [
            ('asset_form', 'model'),
            ('asset_form', 'warehouse'),
        ]

        self.model1 = AssetModelFactory()
예제 #6
0
    def setUp(self):
        self.client = login_as_su()
        self.base_url = '/assets/dc/search'

        self.first_asset = AssetFactory(
            production_use_date=datetime.date(2001, 1, 1),
            sn='1234-1234-1234-1234',
        )

        self.second_asset = AssetFactory(
            production_use_date=datetime.date(2002, 1, 1),
            sn='1235-1235-1235-1235',
        )

        self.third_asset = AssetFactory(
            production_use_date=datetime.date(2003, 1, 1),
            sn='1236-1236-1236-1236',
        )
예제 #7
0
 def setUp(self):
     self.asset = AssetFactory(
         invoice_date=datetime.date(2012, 11, 28),
         support_period=1,
         deprecation_rate=100,
     )
     self.asset.device_info.ralph_device_id = 666
     self.asset.device_info.save()
     self.asset2 = AssetFactory(
         invoice_date=datetime.date(2012, 11, 28),
         support_period=120,
         deprecation_rate=50,
     )
     self.asset2.device_info.ralph_device_id = 667
     self.asset2.device_info.save()
     self.asset3 = AssetFactory(
         invoice_date=datetime.date(2012, 11, 28),
         support_period=120,
         deprecation_rate=50,
         force_deprecation=True,
     )
     self.asset_depr_date = AssetFactory(
         sn='1111-1111-1111-1114',
         invoice_date=datetime.date(2012, 11, 28),
         support_period=120,
         deprecation_rate=50,
         deprecation_end_date=datetime.date(2014, 12, 15),
     )
     dev1 = Device.create(
         [('1', 'sda', 0)],
         model_name='xxx',
         model_type=DeviceType.rack_server,
         allow_stub=1,
     )
     dev1.id = 666
     dev1.save()
     dev2 = Device.create(
         [('1', 'dawdwad', 0)],
         model_name='Unknown',
         model_type=DeviceType.unknown,
         allow_stub=1,
     )
     dev2.id = 667
     dev2.save()
예제 #8
0
    def test_venture(self):
        venture = Venture.objects.create(name='v1')
        self.dev1.venture = venture
        self.dev1.save()

        asset_without_device = AssetFactory(device_info=None)

        self.assertEqual(self.asset.venture, venture)
        self.assertEqual(self.asset2.venture, None)
        self.assertEqual(asset_without_device.venture, None)
예제 #9
0
class TestApiAssets(TestCase):
    def setUp(self):
        self.category = AssetSubCategoryFactory(is_blade=True)
        self.model = AssetModelFactory(category=self.category)
        self.asset = AssetFactory(
            invoice_date=datetime.date(2012, 11, 28),
            support_period=1,
            slots=12.0,
            price=100,
            deprecation_rate=100,
            model=self.model,
        )

        part_info = PartInfo(device=self.asset)
        part_info.save()
        self.asset2 = AssetFactory(
            invoice_date=datetime.date(2012, 11, 28),
            support_period=1,
            slots=12.0,
            price=100,
            part_info=part_info,
            deprecation_rate=50,
            model=self.model,
        )

    def tests_api_asset(self):
        date = datetime.date(2014, 03, 29)
        for item in get_assets(date):
            self.assertEqual(item['asset_id'], self.asset.id)
            self.assertEqual(
                item['ralph_id'], self.asset.device_info.ralph_device_id,
            )
            self.assertEqual(item['slots'], self.asset.slots)
            self.assertEqual(item['price'], self.asset.price)
            self.assertEqual(
                item['is_deprecated'],
                self.asset.is_deprecated(date)
            )
            self.assertEqual(item['sn'], self.asset.sn)
            self.assertEqual(item['barcode'], self.asset.barcode)
            self.assertEqual(item['venture_id'], self.asset.venture.id)
            self.assertEqual(item['is_blade'], self.category.is_blade)
            self.assertEqual(item['cores_count'], self.asset.cores_count)

    def tests_api_asset_part(self):
        for item in get_asset_parts():
            self.assertEqual(item['price'], 100)
            # self.assertEqual(item['is_deprecated'], False)
            model = self.model
            self.assertEqual(item['model'], model.name)
            self.assertEqual(item['asset_id'], self.asset2.id)
            self.assertEqual(item['sn'], self.asset.sn)
            self.assertEqual(item['barcode'], self.asset.barcode)
예제 #10
0
 def test_showing_dc_form_data(self):
     """
     1. add DC asset,
     2. open asset in bulk mode,
     3. check if all fields are set like the added asset.
     """
     dc_asset_data = self.common_asset_data.copy()
     dc_asset_data.update({'sn': 'dc-sn-number'})
     dc_asset = AssetFactory(**dc_asset_data)
     self._test_showing_form_data(
         'dc', dc_asset.id, dc_asset_data
     )
예제 #11
0
class TestApiAssets(TestCase):
    def setUp(self):
        self.category = AssetSubCategoryFactory(is_blade=True)
        self.model = AssetModelFactory(category=self.category)
        self.asset = AssetFactory(
            invoice_date=datetime.date(2012, 11, 28),
            support_period=1,
            slots=12.0,
            price=100,
            deprecation_rate=100,
            model=self.model,
        )
        part_info = PartInfo(device=self.asset)
        part_info.save()
        self.asset2 = AssetFactory(
            invoice_date=datetime.date(2012, 11, 28),
            support_period=1,
            slots=12.0,
            price=100,
            part_info=part_info,
            deprecation_rate=50,
            model=self.model,
        )
        self.stock_venture = Venture.objects.get(name='Stock')

    def tests_api_asset(self):
        date = datetime.date(2014, 03, 29)
        for item in get_assets(date):
            self.assertEqual(item['asset_id'], self.asset.id)
            self.assertEqual(
                item['ralph_id'],
                self.asset.device_info.ralph_device_id,
            )
            self.assertEqual(item['slots'], self.asset.slots)
            self.assertEqual(item['price'], self.asset.price)
            self.assertEqual(item['is_deprecated'],
                             self.asset.is_deprecated(date))
            self.assertEqual(item['sn'], self.asset.sn)
            self.assertEqual(item['barcode'], self.asset.barcode)
            self.assertEqual(item['venture_id'], self.stock_venture.id)
            self.assertEqual(item['is_blade'], self.category.is_blade)
            self.assertEqual(item['cores_count'], self.asset.cores_count)

    def tests_api_asset_part(self):
        for item in get_asset_parts():
            self.assertEqual(item['price'], 100)
            # self.assertEqual(item['is_deprecated'], False)
            model = self.model
            self.assertEqual(item['model'], model.name)
            self.assertEqual(item['asset_id'], self.asset2.id)
            self.assertEqual(item['sn'], self.asset.sn)
            self.assertEqual(item['barcode'], self.asset.barcode)
예제 #12
0
    def test_when_device_does_not_exist_and_asset_identity_is_given(self):
        device = DeviceFactory()
        device_info = DeviceInfoFactory(ralph_device_id=device.id)
        asset = AssetFactory(
            barcode="testbarcode",
            device_info=device_info,
        )
        self.data.update({"asset_identity": asset.barcode})
        util.create_deployments([self.data], self.user, self.mass_deployment)

        deployments = Deployment.objects.all()
        self.assertEqual(deployments.count(), 1)
        self.assertEqual(deployments[0].device, device)
예제 #13
0
 def setUp(self):
     self.category = AssetSubCategoryFactory(is_blade=True)
     self.model = AssetModelFactory(category=self.category)
     self.asset = AssetFactory(
         invoice_date=datetime.date(2012, 11, 28),
         support_period=1,
         slots=12.0,
         price=100,
         deprecation_rate=100,
         model=self.model,
     )
     part_info = PartInfo(device=self.asset)
     part_info.save()
     self.asset2 = AssetFactory(
         invoice_date=datetime.date(2012, 11, 28),
         support_period=1,
         slots=12.0,
         price=100,
         part_info=part_info,
         deprecation_rate=50,
         model=self.model,
     )
     self.stock_venture = Venture.objects.get(name='Stock')
예제 #14
0
    def setUp(self):
        self.client = login_as_su()
        self.testing_urls = {
            'dc': reverse('asset_search', args=('dc', )),
            'bo': reverse('asset_search', args=('back_office', )),
        }
        self.assets_dc = [AssetFactory() for _ in range(5)]
        self.assets_bo = [BOAssetFactory() for _ in range(5)]
        for name in ['iPad 5 16 GB', 'ProLiant BL2x2d', 'WS-CBS312']:
            AssetFactory(model__name=name)
            BOAssetFactory(model__name=name)

        for manufacturer in ['Apple', 'Sony', 'Nikon', 'Sony Ericsson']:
            manu = AssetManufacturerFactory(name=manufacturer)
            AssetFactory(model__manufacturer=manu)
            BOAssetFactory(model__manufacturer=manu)
            sam.LicenceFactory(manufacturer=manu)

        for unique in ['123456', '456123']:
            AssetFactory(barcode=unique, sn=unique, niw=unique)
        for unique in ['654321', '321654']:
            BOAssetFactory(barcode=unique, sn=unique, niw=unique)

        self.msg_error = 'Error in {}, request has return {} but expected {}.'
예제 #15
0
 def setUp(self):
     self.asset = AssetFactory(
         invoice_date=datetime.date(2012, 11, 28),
         support_period=1,
         deprecation_rate=100,
     )
     self.asset.device_info.ralph_device_id = 666
     self.asset.device_info.save()
     self.asset2 = AssetFactory(
         invoice_date=datetime.date(2012, 11, 28),
         support_period=120,
         deprecation_rate=50,
     )
     self.asset2.device_info.ralph_device_id = 667
     self.asset2.device_info.save()
     self.asset3 = AssetFactory(
         invoice_date=datetime.date(2012, 11, 28),
         support_period=120,
         deprecation_rate=50,
         force_deprecation=True,
     )
     self.asset_depr_date = AssetFactory(
         sn='1111-1111-1111-1114',
         invoice_date=datetime.date(2012, 11, 28),
         support_period=120,
         deprecation_rate=50,
         deprecation_end_date=datetime.date(2014, 12, 15),
     )
     self.dev1 = Device.create(
         [('1', 'sda', 0)],
         model_name='xxx',
         model_type=DeviceType.rack_server,
         allow_stub=1,
     )
     self.dev1.id = 666
     self.dev1.save()
     dev2 = Device.create(
         [('1', 'dawdwad', 0)],
         model_name='Unknown',
         model_type=DeviceType.unknown,
         allow_stub=1,
     )
     dev2.id = 667
     dev2.save()
예제 #16
0
    def setUp(self):
        self.category = AssetSubCategoryFactory(is_blade=True)
        self.model = AssetModelFactory(category=self.category)
        self.asset = AssetFactory(
            invoice_date=datetime.date(2012, 11, 28),
            support_period=1,
            slots=12.0,
            price=100,
            deprecation_rate=100,
            model=self.model,
        )

        part_info = PartInfo(device=self.asset)
        part_info.save()
        self.asset2 = AssetFactory(
            invoice_date=datetime.date(2012, 11, 28),
            support_period=1,
            slots=12.0,
            price=100,
            part_info=part_info,
            deprecation_rate=50,
            model=self.model,
        )
예제 #17
0
class TestModelAsset(TestCase):
    def setUp(self):
        self.asset = AssetFactory(
            invoice_date=datetime.date(2012, 11, 28),
            support_period=1,
            deprecation_rate=100,
        )
        self.asset.device_info.ralph_device_id = 666
        self.asset.device_info.save()
        self.asset2 = AssetFactory(
            invoice_date=datetime.date(2012, 11, 28),
            support_period=120,
            deprecation_rate=50,
        )
        self.asset2.device_info.ralph_device_id = 667
        self.asset2.device_info.save()
        self.asset3 = AssetFactory(
            invoice_date=datetime.date(2012, 11, 28),
            support_period=120,
            deprecation_rate=50,
            force_deprecation=True,
        )
        self.asset_depr_date = AssetFactory(
            sn='1111-1111-1111-1114',
            invoice_date=datetime.date(2012, 11, 28),
            support_period=120,
            deprecation_rate=50,
            deprecation_end_date=datetime.date(2014, 12, 15),
        )
        dev1 = Device.create(
            [('1', 'sda', 0)],
            model_name='xxx',
            model_type=DeviceType.rack_server,
            allow_stub=1,
        )
        dev1.id = 666
        dev1.save()
        dev2 = Device.create(
            [('1', 'dawdwad', 0)],
            model_name='Unknown',
            model_type=DeviceType.unknown,
            allow_stub=1,
        )
        dev2.id = 667
        dev2.save()

    def test_is_discovered(self):
        self.assertEqual(self.asset.is_discovered, True)
        self.assertEqual(self.asset2.is_discovered, False)
        self.assertEqual(self.asset3.is_discovered, False)

    def test_is_deperecation(self):
        date = datetime.date(2014, 03, 29)
        self.assertEqual(self.asset.get_deprecation_months(), 12)
        self.assertEqual(self.asset2.get_deprecation_months(), 24)
        self.assertEqual(self.asset.is_deprecated(date), True)
        self.assertEqual(self.asset2.is_deprecated(date), False)
        self.assertEqual(self.asset3.is_deprecated(date), True)
        self.assertEqual(
            self.asset_depr_date.is_deprecated(datetime.date(2014, 12, 10)),
            False,
        )
        self.assertEqual(
            self.asset_depr_date.is_deprecated(datetime.date(2014, 12, 20)),
            True,
        )
예제 #18
0
class TestModelAsset(TestCase):
    def setUp(self):
        self.asset = AssetFactory(
            invoice_date=datetime.date(2012, 11, 28),
            support_period=1,
            deprecation_rate=100,
        )
        self.asset.device_info.ralph_device_id = 666
        self.asset.device_info.save()
        self.asset2 = AssetFactory(
            invoice_date=datetime.date(2012, 11, 28),
            support_period=120,
            deprecation_rate=50,
        )
        self.asset2.device_info.ralph_device_id = 667
        self.asset2.device_info.save()
        self.asset3 = AssetFactory(
            invoice_date=datetime.date(2012, 11, 28),
            support_period=120,
            deprecation_rate=50,
            force_deprecation=True,
        )
        self.asset_depr_date = AssetFactory(
            sn='1111-1111-1111-1114',
            invoice_date=datetime.date(2012, 11, 28),
            support_period=120,
            deprecation_rate=50,
            deprecation_end_date=datetime.date(2014, 12, 15),
        )
        self.dev1 = Device.create(
            [('1', 'sda', 0)],
            model_name='xxx',
            model_type=DeviceType.rack_server,
            allow_stub=1,
        )
        self.dev1.id = 666
        self.dev1.save()
        dev2 = Device.create(
            [('1', 'dawdwad', 0)],
            model_name='Unknown',
            model_type=DeviceType.unknown,
            allow_stub=1,
        )
        dev2.id = 667
        dev2.save()

    def test_is_discovered(self):
        self.assertEqual(self.asset.is_discovered, True)
        self.assertEqual(self.asset2.is_discovered, False)
        self.assertEqual(self.asset3.is_discovered, False)

    def test_is_deperecation(self):
        date = datetime.date(2014, 03, 29)
        self.assertEqual(self.asset.get_deprecation_months(), 12)
        self.assertEqual(self.asset2.get_deprecation_months(), 24)
        self.assertEqual(self.asset.is_deprecated(date), True)
        self.assertEqual(self.asset2.is_deprecated(date), False)
        self.assertEqual(self.asset3.is_deprecated(date), True)
        self.assertEqual(
            self.asset_depr_date.is_deprecated(datetime.date(2014, 12, 10)),
            False,
        )
        self.assertEqual(
            self.asset_depr_date.is_deprecated(datetime.date(2014, 12, 20)),
            True,
        )

    def test_venture(self):
        venture = Venture.objects.create(name='v1')
        self.dev1.venture = venture
        self.dev1.save()

        asset_without_device = AssetFactory(device_info=None)

        self.assertEqual(self.asset.venture, venture)
        self.assertEqual(self.asset2.venture, None)
        self.assertEqual(asset_without_device.venture, None)
예제 #19
0
    def test_asset(self):
        asset = AssetFactory(pk=123)
        history = asset.get_history()
        self.assertEqual(0, history.count())

        asset.sn = '123'
        asset.save()
        self.assertEqual(1, history.count())

        asset.sn = '1233'
        asset.save()
        self.assertEqual(2, history.count())

        licence = LicenceFactory()
        history = licence.get_history()
        licence.save()
        licence.save()
        self.assertEqual(0, history.count())

        for i in xrange(5):
            asset = AssetFactory()
            licence.assets.add(asset)
            self.assertEqual(i + 1, history.count())
class TestRestAssetInfoPerRack(TestCase):
    def setUp(self):
        User.objects.create_superuser('test', '*****@*****.**', 'test')
        self.client = APIClient()
        self.client.login(username='******', password='******')

        self.rack_1 = RackFactory(max_u_height=3)
        rack_2 = RackFactory()

        self.dev_1 = DeviceFactory(name="h001.dc")
        self.dev_1.management_ip = '10.20.30.1'
        self.dev_2 = DeviceFactory(name="h002.dc")
        self.dev_2.management_ip = '10.20.30.2'

        self.asset_1 = AssetFactory(
            device_info__position=1,
            device_info__slot_no='',
            device_info__ralph_device_id=self.dev_1.id,
            service=ServiceCatalogFactory(name='Alpha Service'),
        )
        self.asset_2 = AssetFactory(
            device_info__position=2,
            device_info__slot_no='',
            device_info__ralph_device_id=self.dev_2.id,
            service=ServiceCatalogFactory(name='Beta Service'),
        )
        asset_3 = AssetFactory()

        self.rack_1.deviceinfo_set.add(self.asset_1.device_info)
        self.rack_1.deviceinfo_set.add(self.asset_2.device_info)
        rack_2.deviceinfo_set.add(asset_3.device_info)

        self.pdu_1 = AssetFactory(
            device_info__rack=self.rack_1,
            device_info__orientation=Orientation.left,
            device_info__position=0,
        )
        self.rack_1.deviceinfo_set.add(self.pdu_1.device_info)
        self.rack1_accessory = RackAccessoryFactory(
            rack=self.rack_1,
            server_room=self.rack_1.server_room,
            data_center=self.rack_1.server_room.data_center,
            orientation=Orientation.front,
        )
        self.rack2_accessory = RackAccessoryFactory(
            rack=rack_2,
            server_room=rack_2.server_room,
            data_center=rack_2.server_room.data_center,
            orientation=Orientation.front,
        )

    def tearDown(self):
        self.client.logout()

    def test_get(self):
        core_url = '/ui/search/info/{0}'
        returned_json = json.loads(
            self.client.get(
                '/assets/api/rack/{0}/'.format(self.rack_1.id)
            ).content
        )
        self.maxDiff = None
        expected_json = {
            'info': {
                'id': self.rack_1.id,
                'name': self.rack_1.name,
                'data_center': self.rack_1.data_center.id,
                'server_room': self.rack_1.server_room.id,
                'max_u_height': self.rack_1.max_u_height,
                'visualization_col': self.rack_1.visualization_col,
                'visualization_row': self.rack_1.visualization_row,
                'free_u': self.rack_1.get_free_u(),
                'description': '{}'.format(self.rack_1.description),
                'orientation': '{}'.format(self.rack_1.get_orientation_desc()),
                'rack_admin_url': reverse(
                    'admin:ralph_assets_rack_change', args=(self.rack_1.id,),
                )
            },
            'devices':
            [
                {
                    '_type': TYPE_ASSET,
                    'id': self.asset_1.id,
                    'hostname': self.dev_1.name,
                    'url': '{}'.format(self.asset_1.get_absolute_url()),
                    'core_url': core_url.format(
                        self.asset_1.device_info.ralph_device_id),
                    'category': '{}'.format(self.asset_1.model.category),
                    'barcode': self.asset_1.barcode,
                    'sn': '{}'.format(self.asset_1.sn),
                    'height': float(self.asset_1.model.height_of_device),
                    'position': self.asset_1.device_info.position,
                    'model': self.asset_1.model.name,
                    'children': [],
                    'front_layout': u'',
                    'back_layout': u'',
                    'management_ip': self.dev_1.management_ip.address,
                    'service': self.asset_1.service.name,
                    'orientation': 'front',
                },
                {
                    '_type': TYPE_ASSET,
                    'id': self.asset_2.id,
                    'hostname': self.dev_2.name,
                    'url': '{}'.format(self.asset_2.get_absolute_url()),
                    'core_url': core_url.format(
                        self.asset_2.device_info.ralph_device_id),
                    'category': '{}'.format(self.asset_2.model.category),
                    'barcode': self.asset_2.barcode,
                    'sn': '{}'.format(self.asset_2.sn),
                    'height': float(self.asset_2.model.height_of_device),
                    'position': self.asset_2.device_info.position,
                    'model': self.asset_2.model.name,
                    'children': [],
                    'front_layout': u'',
                    'back_layout': u'',
                    'management_ip': self.dev_2.management_ip.address,
                    'service': self.asset_2.service.name,
                    'orientation': 'front',
                },
                {
                    '_type': TYPE_ACCESSORY,
                    'orientation': 'front',
                    'position': self.rack1_accessory.position,
                    'remarks': self.rack1_accessory.remarks,
                    'type': self.rack1_accessory.accessory.name,
                },
            ],
            'pdus': [
                {
                    'model': self.pdu_1.model.name,
                    'orientation': 'left',
                    'url': self.pdu_1.get_absolute_url(),
                    'sn': '{}'.format(self.pdu_1.sn)
                },
            ]
        }
        self.assertEqual(returned_json, expected_json)