)]}'
{"nova/tests/unit/api/openstack/placement/objects/test_resource_provider.py":[{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"c3d595de6baac8fc515f0b5a8ffcdeb679fec677","unresolved":false,"context_lines":[{"line_number":301,"context_line":"        rp \u003d resource_provider.ResourceProvider(context\u003dself.context,"},{"line_number":302,"context_line":"                                                uuid\u003d_RESOURCE_PROVIDER_UUID,"},{"line_number":303,"context_line":"                                                name\u003d_RESOURCE_PROVIDER_NAME)"},{"line_number":304,"context_line":"        rp.create()"},{"line_number":305,"context_line":"        inv \u003d resource_provider.Inventory(context\u003dself.context,"},{"line_number":306,"context_line":"                                resource_provider\u003drp,"},{"line_number":307,"context_line":"                                resource_class\u003d_RESOURCE_CLASS_NAME,"},{"line_number":308,"context_line":"                                total\u003d16,"},{"line_number":309,"context_line":"                                reserved\u003d2,"},{"line_number":310,"context_line":"                                min_unit\u003d1,"},{"line_number":311,"context_line":"                                max_unit\u003d8,"},{"line_number":312,"context_line":"                                step_size\u003d1,"},{"line_number":313,"context_line":"                                allocation_ratio\u003d1.0)"},{"line_number":314,"context_line":"        inv_list \u003d resource_provider.InventoryList(context\u003dself.context,"},{"line_number":315,"context_line":"                                                   objects\u003d[inv])"},{"line_number":316,"context_line":"        rp.set_inventory(inv_list)"},{"line_number":317,"context_line":"        obj \u003d resource_provider.Allocation(context\u003dself.context,"},{"line_number":318,"context_line":"                                           id\u003d99,"},{"line_number":319,"context_line":"                                           resource_provider\u003drp,"}],"source_content_type":"text/x-python","patch_set":1,"id":"5f7c97a3_111452e8","side":"PARENT","line":316,"range":{"start_line":304,"start_character":1,"end_line":316,"end_character":34},"updated":"2018-06-12 02:48:31.000000000","message":"Unless I\u0027m mistaken, you should be able to leave this test as a unit test (because it really is just a failure edge case not a functional test) by removing lines 304-316.\n\nAll the test is doing is validating a small section of code in the AllocationList.create_all() method that checks if any of the allocations in AllocationList.objects has an id attribute already set -- i.e. the following few lines of code:\n\nhttps://github.com/openstack/nova/blob/5ef23af397820ac2031731e0a370fdb1236d9563/nova/api/openstack/placement/objects/resource_provider.py#L1886-L1889\n\nNone of which require lines 304-316 to be executed in order to be covered.","commit_id":"28d2e4a61e1c1accda9a8dd89e81ff8a46d7a3f2"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"edf8f449af0c8ff820bad9ae8a57b0b7e9fd87db","unresolved":false,"context_lines":[{"line_number":301,"context_line":"        rp \u003d resource_provider.ResourceProvider(context\u003dself.context,"},{"line_number":302,"context_line":"                                                uuid\u003d_RESOURCE_PROVIDER_UUID,"},{"line_number":303,"context_line":"                                                name\u003d_RESOURCE_PROVIDER_NAME)"},{"line_number":304,"context_line":"        rp.create()"},{"line_number":305,"context_line":"        inv \u003d resource_provider.Inventory(context\u003dself.context,"},{"line_number":306,"context_line":"                                resource_provider\u003drp,"},{"line_number":307,"context_line":"                                resource_class\u003d_RESOURCE_CLASS_NAME,"},{"line_number":308,"context_line":"                                total\u003d16,"},{"line_number":309,"context_line":"                                reserved\u003d2,"},{"line_number":310,"context_line":"                                min_unit\u003d1,"},{"line_number":311,"context_line":"                                max_unit\u003d8,"},{"line_number":312,"context_line":"                                step_size\u003d1,"},{"line_number":313,"context_line":"                                allocation_ratio\u003d1.0)"},{"line_number":314,"context_line":"        inv_list \u003d resource_provider.InventoryList(context\u003dself.context,"},{"line_number":315,"context_line":"                                                   objects\u003d[inv])"},{"line_number":316,"context_line":"        rp.set_inventory(inv_list)"},{"line_number":317,"context_line":"        obj \u003d resource_provider.Allocation(context\u003dself.context,"},{"line_number":318,"context_line":"                                           id\u003d99,"},{"line_number":319,"context_line":"                                           resource_provider\u003drp,"}],"source_content_type":"text/x-python","patch_set":1,"id":"5f7c97a3_cf8dcad4","side":"PARENT","line":316,"range":{"start_line":304,"start_character":1,"end_line":316,"end_character":34},"in_reply_to":"5f7c97a3_111452e8","updated":"2018-06-12 10:09:55.000000000","message":"Hmm yeah, I think I let myself be misled by the need to create the inventory, which isn\u0027t actually required. Thanks.","commit_id":"28d2e4a61e1c1accda9a8dd89e81ff8a46d7a3f2"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"20599e021330be3d439b16e2f415e78349a721e2","unresolved":false,"context_lines":[{"line_number":301,"context_line":"        rp \u003d resource_provider.ResourceProvider(context\u003dself.context,"},{"line_number":302,"context_line":"                                                uuid\u003d_RESOURCE_PROVIDER_UUID,"},{"line_number":303,"context_line":"                                                name\u003d_RESOURCE_PROVIDER_NAME)"},{"line_number":304,"context_line":"        rp.create()"},{"line_number":305,"context_line":"        inv \u003d resource_provider.Inventory(context\u003dself.context,"},{"line_number":306,"context_line":"                                resource_provider\u003drp,"},{"line_number":307,"context_line":"                                resource_class\u003d_RESOURCE_CLASS_NAME,"},{"line_number":308,"context_line":"                                total\u003d16,"},{"line_number":309,"context_line":"                                reserved\u003d2,"},{"line_number":310,"context_line":"                                min_unit\u003d1,"},{"line_number":311,"context_line":"                                max_unit\u003d8,"},{"line_number":312,"context_line":"                                step_size\u003d1,"},{"line_number":313,"context_line":"                                allocation_ratio\u003d1.0)"},{"line_number":314,"context_line":"        inv_list \u003d resource_provider.InventoryList(context\u003dself.context,"},{"line_number":315,"context_line":"                                                   objects\u003d[inv])"},{"line_number":316,"context_line":"        rp.set_inventory(inv_list)"},{"line_number":317,"context_line":"        obj \u003d resource_provider.Allocation(context\u003dself.context,"},{"line_number":318,"context_line":"                                           id\u003d99,"},{"line_number":319,"context_line":"                                           resource_provider\u003drp,"}],"source_content_type":"text/x-python","patch_set":1,"id":"5f7c97a3_4a41a862","side":"PARENT","line":316,"range":{"start_line":304,"start_character":1,"end_line":316,"end_character":34},"in_reply_to":"5f7c97a3_cf8dcad4","updated":"2018-06-12 10:59:44.000000000","message":"Turns out the thing that was throwing me off was the DatabasePoisonFixture. Mocking what it mocks gets this passing as a unit, and then by the end of the series that mock can go away because the DatabasePoisonFixture does too.","commit_id":"28d2e4a61e1c1accda9a8dd89e81ff8a46d7a3f2"}]}
