)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"87394abf80fb3afa7c7688eae56f09a5335cf778","unresolved":false,"context_lines":[{"line_number":9,"context_line":"We will need to tell Neutron about the MAC address of the PF port as it"},{"line_number":10,"context_line":"cannot set by the VIF driver."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"This method lets su figure it out from sysfs"},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Change-Id: Iad44405488395ce08d1a893f50edfce20fdae7d2"},{"line_number":15,"context_line":"Related-blueprint: sriov-pf-passthrough-neutron-port"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":11,"id":"fa69d971_599b5d18","line":12,"updated":"2016-01-11 17:01:24.000000000","message":"us?","commit_id":"ef6db1c46dec9ff9a072aa5670d7cf1b0afcc94a"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"be11961a657b5def2d179a04e4c0aef0e5df536c","unresolved":false,"context_lines":[{"line_number":7,"context_line":"pci: Add utility method for getting the MAC addr"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"We will need to tell Neutron about the MAC address of the PF port as it"},{"line_number":10,"context_line":"cannot set by the VIF driver."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"This method lets su figure it out from sysfs"},{"line_number":13,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":19,"id":"9a68dd71_12bddb01","line":10,"updated":"2016-01-22 18:28:31.000000000","message":"cannot be?","commit_id":"6dfeaa5d7538a4030ca386fa80a647f0cb0f6a99"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"be11961a657b5def2d179a04e4c0aef0e5df536c","unresolved":false,"context_lines":[{"line_number":9,"context_line":"We will need to tell Neutron about the MAC address of the PF port as it"},{"line_number":10,"context_line":"cannot set by the VIF driver."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"This method lets su figure it out from sysfs"},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Change-Id: Iad44405488395ce08d1a893f50edfce20fdae7d2"},{"line_number":15,"context_line":"Related-blueprint: sriov-pf-passthrough-neutron-port"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":19,"id":"9a68dd71_32ba5f0b","line":12,"updated":"2016-01-22 18:28:31.000000000","message":"us","commit_id":"6dfeaa5d7538a4030ca386fa80a647f0cb0f6a99"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"9fcc52bd1c4887eb760be3b0147aa7aff526c42d","unresolved":false,"context_lines":[{"line_number":9,"context_line":"We will need to tell Neutron about the MAC address of the PF port as it"},{"line_number":10,"context_line":"cannot set by the VIF driver."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"This method lets su figure it out from sysfs"},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Change-Id: Iad44405488395ce08d1a893f50edfce20fdae7d2"},{"line_number":15,"context_line":"Related-blueprint: sriov-pf-passthrough-neutron-port"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":28,"id":"ba0121b8_d63263a6","line":12,"range":{"start_line":12,"start_character":17,"end_line":12,"end_character":19},"updated":"2016-03-31 15:12:08.000000000","message":"nit: s/su/us/","commit_id":"b2385fb781a9ede95418b7717e1922eec4f42a71"}],"nova/pci/utils.py":[{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"d56ed9328364f5c727d04087095034856c372151","unresolved":false,"context_lines":[{"line_number":136,"context_line":"        with open(addr_file) as f:"},{"line_number":137,"context_line":"            mac \u003d next(f).strip()"},{"line_number":138,"context_line":"            return mac"},{"line_number":139,"context_line":"    except Exception:"},{"line_number":140,"context_line":"        raise exception.PciDeviceNotFoundById(id\u003dpci_addr)"},{"line_number":141,"context_line":""},{"line_number":142,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"fa69d971_ae188d85","line":139,"updated":"2015-12-31 10:23:33.000000000","message":"where is this flow tested?","commit_id":"fb73c5772bc37ac7a9170d7676625bc0ac7bc3af"},{"author":{"_account_id":5511,"name":"Nikola Dipanov","email":"ndipanov@redhat.com","username":"ndipanov"},"change_message_id":"335c12a1a72d7e5cb7a31aeaf4ac1ecab68d3807","unresolved":false,"context_lines":[{"line_number":136,"context_line":"        with open(addr_file) as f:"},{"line_number":137,"context_line":"            mac \u003d next(f).strip()"},{"line_number":138,"context_line":"            return mac"},{"line_number":139,"context_line":"    except Exception:"},{"line_number":140,"context_line":"        raise exception.PciDeviceNotFoundById(id\u003dpci_addr)"},{"line_number":141,"context_line":""},{"line_number":142,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"fa69d971_a9dde715","line":139,"in_reply_to":"fa69d971_ae188d85","updated":"2015-12-31 10:39:32.000000000","message":"Will add it","commit_id":"fb73c5772bc37ac7a9170d7676625bc0ac7bc3af"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"16cb03c9de64363fc7656b10c4d2d8253688c176","unresolved":false,"context_lines":[{"line_number":136,"context_line":"        with open(addr_file) as f:"},{"line_number":137,"context_line":"            mac \u003d next(f).strip()"},{"line_number":138,"context_line":"            return mac"},{"line_number":139,"context_line":"    except Exception:"},{"line_number":140,"context_line":"        raise exception.PciDeviceNotFoundById(id\u003dpci_addr)"},{"line_number":141,"context_line":""},{"line_number":142,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"fa69d971_f43aba97","line":139,"updated":"2016-01-03 16:05:52.000000000","message":"Is there some magic somewhere which is logging or otherwise tracking the actual exception here, or is it really the case that we are content to just swallow it?","commit_id":"adc45aa1e514b1322cb6b5cd81a3c795fdba0719"},{"author":{"_account_id":5511,"name":"Nikola Dipanov","email":"ndipanov@redhat.com","username":"ndipanov"},"change_message_id":"a182d1ccb61e4f3510d6f9e4084f1559edd4f1bc","unresolved":false,"context_lines":[{"line_number":136,"context_line":"        with open(addr_file) as f:"},{"line_number":137,"context_line":"            mac \u003d next(f).strip()"},{"line_number":138,"context_line":"            return mac"},{"line_number":139,"context_line":"    except Exception:"},{"line_number":140,"context_line":"        raise exception.PciDeviceNotFoundById(id\u003dpci_addr)"},{"line_number":141,"context_line":""},{"line_number":142,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"fa69d971_d19f7ab2","line":139,"in_reply_to":"fa69d971_f43aba97","updated":"2016-01-04 10:08:46.000000000","message":"Sure I can add some logging - logging is good","commit_id":"adc45aa1e514b1322cb6b5cd81a3c795fdba0719"},{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"a0f3cbd4a5f3ce828c6536476960e87118a15a76","unresolved":false,"context_lines":[{"line_number":139,"context_line":"        with open(addr_file) as f:"},{"line_number":140,"context_line":"            mac \u003d next(f).strip()"},{"line_number":141,"context_line":"            return mac"},{"line_number":142,"context_line":"    except Exception as e:"},{"line_number":143,"context_line":"        LOG.warn(_LW(\"Could not find the expected sysfs file for determining \""},{"line_number":144,"context_line":"                 \"the MAC address of the PCI device %(addr)s. May not be a \""},{"line_number":145,"context_line":"                 \"NIC. Error: %(e)s\") % {\u0027addr\u0027: pci_addr, \u0027e\u0027: e})"}],"source_content_type":"text/x-python","patch_set":25,"id":"ba0121b8_26dcdce3","line":142,"updated":"2016-03-29 13:01:37.000000000","message":"You can probably be more specific about the error raised here:\n\n  IOError","commit_id":"8787272c4cce0cb7b5a725be8695318adcf3be64"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"2cba86141ab238ecefc6f63d8a9c8d0211a56b45","unresolved":false,"context_lines":[{"line_number":140,"context_line":"            mac \u003d next(f).strip()"},{"line_number":141,"context_line":"            return mac"},{"line_number":142,"context_line":"    except Exception as e:"},{"line_number":143,"context_line":"        LOG.warn(_LW(\"Could not find the expected sysfs file for determining \""},{"line_number":144,"context_line":"                 \"the MAC address of the PCI device %(addr)s. May not be a \""},{"line_number":145,"context_line":"                 \"NIC. Error: %(e)s\") % {\u0027addr\u0027: pci_addr, \u0027e\u0027: e})"},{"line_number":146,"context_line":"        raise exception.PciDeviceNotFoundById(id\u003dpci_addr)"}],"source_content_type":"text/x-python","patch_set":25,"id":"ba0121b8_aaf55484","line":143,"updated":"2016-03-29 12:07:09.000000000","message":"please use LOG.warning LOG.warn is deprecated in python 3","commit_id":"8787272c4cce0cb7b5a725be8695318adcf3be64"},{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"a0f3cbd4a5f3ce828c6536476960e87118a15a76","unresolved":false,"context_lines":[{"line_number":140,"context_line":"            mac \u003d next(f).strip()"},{"line_number":141,"context_line":"            return mac"},{"line_number":142,"context_line":"    except Exception as e:"},{"line_number":143,"context_line":"        LOG.warn(_LW(\"Could not find the expected sysfs file for determining \""},{"line_number":144,"context_line":"                 \"the MAC address of the PCI device %(addr)s. May not be a \""},{"line_number":145,"context_line":"                 \"NIC. Error: %(e)s\") % {\u0027addr\u0027: pci_addr, \u0027e\u0027: e})"},{"line_number":146,"context_line":"        raise exception.PciDeviceNotFoundById(id\u003dpci_addr)"}],"source_content_type":"text/x-python","patch_set":25,"id":"ba0121b8_469110f0","line":143,"in_reply_to":"ba0121b8_aaf55484","updated":"2016-03-29 13:01:37.000000000","message":"I seen some patches in progress trying to clean the code, so I guess Gary is right, we shouldn\u0027t use \u0027warn\u0027 anymore.","commit_id":"8787272c4cce0cb7b5a725be8695318adcf3be64"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"2cba86141ab238ecefc6f63d8a9c8d0211a56b45","unresolved":false,"context_lines":[{"line_number":142,"context_line":"    except Exception as e:"},{"line_number":143,"context_line":"        LOG.warn(_LW(\"Could not find the expected sysfs file for determining \""},{"line_number":144,"context_line":"                 \"the MAC address of the PCI device %(addr)s. May not be a \""},{"line_number":145,"context_line":"                 \"NIC. Error: %(e)s\") % {\u0027addr\u0027: pci_addr, \u0027e\u0027: e})"},{"line_number":146,"context_line":"        raise exception.PciDeviceNotFoundById(id\u003dpci_addr)"},{"line_number":147,"context_line":""},{"line_number":148,"context_line":""}],"source_content_type":"text/x-python","patch_set":25,"id":"ba0121b8_8a35f047","line":145,"updated":"2016-03-29 12:07:09.000000000","message":"please use a , instead of a %","commit_id":"8787272c4cce0cb7b5a725be8695318adcf3be64"},{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"a0f3cbd4a5f3ce828c6536476960e87118a15a76","unresolved":false,"context_lines":[{"line_number":142,"context_line":"    except Exception as e:"},{"line_number":143,"context_line":"        LOG.warn(_LW(\"Could not find the expected sysfs file for determining \""},{"line_number":144,"context_line":"                 \"the MAC address of the PCI device %(addr)s. May not be a \""},{"line_number":145,"context_line":"                 \"NIC. Error: %(e)s\") % {\u0027addr\u0027: pci_addr, \u0027e\u0027: e})"},{"line_number":146,"context_line":"        raise exception.PciDeviceNotFoundById(id\u003dpci_addr)"},{"line_number":147,"context_line":""},{"line_number":148,"context_line":""}],"source_content_type":"text/x-python","patch_set":25,"id":"ba0121b8_46a8f01f","line":145,"in_reply_to":"ba0121b8_8a35f047","updated":"2016-03-29 13:01:37.000000000","message":"Yes same here.","commit_id":"8787272c4cce0cb7b5a725be8695318adcf3be64"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"324f3d78fe85c99d4fc8655da6e81c38f650c028","unresolved":false,"context_lines":[{"line_number":130,"context_line":"        raise exception.PciDeviceNotFoundById(id\u003dpci_addr)"},{"line_number":131,"context_line":""},{"line_number":132,"context_line":""},{"line_number":133,"context_line":"def get_mac_by_pci_address(pci_addr, pf_interface\u003dFalse):"},{"line_number":134,"context_line":"    dev_path \u003d _get_sysfs_netdev_path(pci_addr, pf_interface)"},{"line_number":135,"context_line":"    if_name \u003d get_ifname_by_pci_address(pci_addr, pf_interface)"},{"line_number":136,"context_line":"    addr_file \u003d os.path.join(dev_path, if_name, \u0027address\u0027)"}],"source_content_type":"text/x-python","patch_set":26,"id":"ba0121b8_eaae1084","line":133,"updated":"2016-03-29 20:04:03.000000000","message":"nit: doc strings would be nice on a public utility method.","commit_id":"208426c5e5f4280cca7d2003c7767933d7749056"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"324f3d78fe85c99d4fc8655da6e81c38f650c028","unresolved":false,"context_lines":[{"line_number":139,"context_line":"        with open(addr_file) as f:"},{"line_number":140,"context_line":"            mac \u003d next(f).strip()"},{"line_number":141,"context_line":"            return mac"},{"line_number":142,"context_line":"    except Exception as e:"},{"line_number":143,"context_line":"        LOG.warn(_LW(\"Could not find the expected sysfs file for determining \""},{"line_number":144,"context_line":"                 \"the MAC address of the PCI device %(addr)s. May not be a \""},{"line_number":145,"context_line":"                 \"NIC. Error: %(e)s\") % {\u0027addr\u0027: pci_addr, \u0027e\u0027: e})"}],"source_content_type":"text/x-python","patch_set":26,"id":"ba0121b8_0a08a490","line":142,"range":{"start_line":142,"start_character":11,"end_line":142,"end_character":20},"updated":"2016-03-29 20:04:03.000000000","message":"Agree with sahid that it would be better if we could be more specific with the error handling here, but I\u0027m not sure in what ways this can all fail, besides the file not existing, not being able to read it, etc.\n\nHaving said that, get_ifname_by_pci_address handles Exception also (but we could probably do better). Either way though, we will probably still raise up PciDeviceNotFoundById so the caller is going to handle it the same.","commit_id":"208426c5e5f4280cca7d2003c7767933d7749056"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"324f3d78fe85c99d4fc8655da6e81c38f650c028","unresolved":false,"context_lines":[{"line_number":140,"context_line":"            mac \u003d next(f).strip()"},{"line_number":141,"context_line":"            return mac"},{"line_number":142,"context_line":"    except Exception as e:"},{"line_number":143,"context_line":"        LOG.warn(_LW(\"Could not find the expected sysfs file for determining \""},{"line_number":144,"context_line":"                 \"the MAC address of the PCI device %(addr)s. May not be a \""},{"line_number":145,"context_line":"                 \"NIC. Error: %(e)s\") % {\u0027addr\u0027: pci_addr, \u0027e\u0027: e})"},{"line_number":146,"context_line":"        raise exception.PciDeviceNotFoundById(id\u003dpci_addr)"}],"source_content_type":"text/x-python","patch_set":26,"id":"ba0121b8_aacb7852","line":143,"range":{"start_line":143,"start_character":12,"end_line":143,"end_character":16},"updated":"2016-03-29 20:04:03.000000000","message":"nit: use warning for py3 as noted earlier but I wouldn\u0027t -1 for this.","commit_id":"208426c5e5f4280cca7d2003c7767933d7749056"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"324f3d78fe85c99d4fc8655da6e81c38f650c028","unresolved":false,"context_lines":[{"line_number":141,"context_line":"            return mac"},{"line_number":142,"context_line":"    except Exception as e:"},{"line_number":143,"context_line":"        LOG.warn(_LW(\"Could not find the expected sysfs file for determining \""},{"line_number":144,"context_line":"                 \"the MAC address of the PCI device %(addr)s. May not be a \""},{"line_number":145,"context_line":"                 \"NIC. Error: %(e)s\") % {\u0027addr\u0027: pci_addr, \u0027e\u0027: e})"},{"line_number":146,"context_line":"        raise exception.PciDeviceNotFoundById(id\u003dpci_addr)"},{"line_number":147,"context_line":""}],"source_content_type":"text/x-python","patch_set":26,"id":"ba0121b8_4ab45cd0","line":144,"updated":"2016-03-29 20:04:03.000000000","message":"nit: alignment","commit_id":"208426c5e5f4280cca7d2003c7767933d7749056"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"b4716eae223c820178bd09fb558e567cc8afc1c9","unresolved":false,"context_lines":[{"line_number":144,"context_line":"            mac \u003d next(f).strip()"},{"line_number":145,"context_line":"            return mac"},{"line_number":146,"context_line":"    except (IOError, StopIteration) as e:"},{"line_number":147,"context_line":"        LOG.warning(_LW(\"Could not find the expected sysfs file for \""},{"line_number":148,"context_line":"                    \"determining the MAC address of the PCI device %(addr)s. \""},{"line_number":149,"context_line":"                    \"May not be a NIC. Error: %(e)s\"),"},{"line_number":150,"context_line":"                    {\u0027addr\u0027: pci_addr, \u0027e\u0027: e})"},{"line_number":151,"context_line":"        raise exception.PciDeviceNotFoundById(id\u003dpci_addr)"},{"line_number":152,"context_line":""}],"source_content_type":"text/x-python","patch_set":27,"id":"ba0121b8_a24a4224","line":149,"range":{"start_line":147,"start_character":24,"end_line":149,"end_character":52},"updated":"2016-03-30 16:29:37.000000000","message":"Can we fix the alignment here?","commit_id":"b0fcc74db0c6a5d850dc5a768e31bf87877ac5f4"},{"author":{"_account_id":5511,"name":"Nikola Dipanov","email":"ndipanov@redhat.com","username":"ndipanov"},"change_message_id":"222de5384bf30a8f4ce1776de6251732f2f1efe9","unresolved":false,"context_lines":[{"line_number":144,"context_line":"            mac \u003d next(f).strip()"},{"line_number":145,"context_line":"            return mac"},{"line_number":146,"context_line":"    except (IOError, StopIteration) as e:"},{"line_number":147,"context_line":"        LOG.warning(_LW(\"Could not find the expected sysfs file for \""},{"line_number":148,"context_line":"                    \"determining the MAC address of the PCI device %(addr)s. \""},{"line_number":149,"context_line":"                    \"May not be a NIC. Error: %(e)s\"),"},{"line_number":150,"context_line":"                    {\u0027addr\u0027: pci_addr, \u0027e\u0027: e})"},{"line_number":151,"context_line":"        raise exception.PciDeviceNotFoundById(id\u003dpci_addr)"},{"line_number":152,"context_line":""}],"source_content_type":"text/x-python","patch_set":27,"id":"ba0121b8_981e71b9","line":149,"range":{"start_line":147,"start_character":24,"end_line":149,"end_character":52},"in_reply_to":"ba0121b8_a24a4224","updated":"2016-03-31 08:23:34.000000000","message":"Done","commit_id":"b0fcc74db0c6a5d850dc5a768e31bf87877ac5f4"}],"nova/tests/unit/pci/test_utils.py":[{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"36c533ece57fdefd3e7575874b4325cba25ccb1a","unresolved":false,"context_lines":[{"line_number":158,"context_line":"        self.tmpdir \u003d self.useFixture(fixtures.TempDir())"},{"line_number":159,"context_line":"        self.fake_file \u003d os.path.join(self.tmpdir.path, \"address\")"},{"line_number":160,"context_line":"        with open(self.fake_file, \"w\") as f:"},{"line_number":161,"context_line":"            f.write(\"a0:36:9f:72:00:00\\n\")"},{"line_number":162,"context_line":""},{"line_number":163,"context_line":"    @mock.patch.object(os, \u0027listdir\u0027)"},{"line_number":164,"context_line":"    @mock.patch.object(os.path, \u0027join\u0027)"}],"source_content_type":"text/x-python","patch_set":27,"id":"ba0121b8_e3d39902","line":161,"updated":"2016-03-30 18:43:38.000000000","message":"Can you do this without writing actual files? The unit tests should be really stateless and run on varying environments. We\u0027ve had problems before with external CI systems not having the same environment you think and hitting issues like this.\n\nYou can just mock out open and return a StringIO or something right?","commit_id":"b0fcc74db0c6a5d850dc5a768e31bf87877ac5f4"},{"author":{"_account_id":2750,"name":"Sean Dague","email":"sean@dague.net","username":"sdague"},"change_message_id":"bfb7f4ed73e84a85007768c636e7441f49f86de2","unresolved":false,"context_lines":[{"line_number":158,"context_line":"        self.tmpdir \u003d self.useFixture(fixtures.TempDir())"},{"line_number":159,"context_line":"        self.fake_file \u003d os.path.join(self.tmpdir.path, \"address\")"},{"line_number":160,"context_line":"        with open(self.fake_file, \"w\") as f:"},{"line_number":161,"context_line":"            f.write(\"a0:36:9f:72:00:00\\n\")"},{"line_number":162,"context_line":""},{"line_number":163,"context_line":"    @mock.patch.object(os, \u0027listdir\u0027)"},{"line_number":164,"context_line":"    @mock.patch.object(os.path, \u0027join\u0027)"}],"source_content_type":"text/x-python","patch_set":27,"id":"ba0121b8_8004254a","line":161,"in_reply_to":"ba0121b8_383e4528","updated":"2016-03-31 14:37:22.000000000","message":"I think tempdir use is fine. This ever uses os.path.join so should be fine on odd platforms.","commit_id":"b0fcc74db0c6a5d850dc5a768e31bf87877ac5f4"},{"author":{"_account_id":5511,"name":"Nikola Dipanov","email":"ndipanov@redhat.com","username":"ndipanov"},"change_message_id":"222de5384bf30a8f4ce1776de6251732f2f1efe9","unresolved":false,"context_lines":[{"line_number":158,"context_line":"        self.tmpdir \u003d self.useFixture(fixtures.TempDir())"},{"line_number":159,"context_line":"        self.fake_file \u003d os.path.join(self.tmpdir.path, \"address\")"},{"line_number":160,"context_line":"        with open(self.fake_file, \"w\") as f:"},{"line_number":161,"context_line":"            f.write(\"a0:36:9f:72:00:00\\n\")"},{"line_number":162,"context_line":""},{"line_number":163,"context_line":"    @mock.patch.object(os, \u0027listdir\u0027)"},{"line_number":164,"context_line":"    @mock.patch.object(os.path, \u0027join\u0027)"}],"source_content_type":"text/x-python","patch_set":27,"id":"ba0121b8_383e4528","line":161,"in_reply_to":"ba0121b8_83a29d49","updated":"2016-03-31 08:23:34.000000000","message":"Yeah I think TempDir should be fine for most systems.\n\nI did try doing this with stringio at first and it\u0027s actually worse because mocking the builtin open function has weird sideffects","commit_id":"b0fcc74db0c6a5d850dc5a768e31bf87877ac5f4"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"262ba9a65b72da75b27530245347fcf33bf3d8e8","unresolved":false,"context_lines":[{"line_number":158,"context_line":"        self.tmpdir \u003d self.useFixture(fixtures.TempDir())"},{"line_number":159,"context_line":"        self.fake_file \u003d os.path.join(self.tmpdir.path, \"address\")"},{"line_number":160,"context_line":"        with open(self.fake_file, \"w\") as f:"},{"line_number":161,"context_line":"            f.write(\"a0:36:9f:72:00:00\\n\")"},{"line_number":162,"context_line":""},{"line_number":163,"context_line":"    @mock.patch.object(os, \u0027listdir\u0027)"},{"line_number":164,"context_line":"    @mock.patch.object(os.path, \u0027join\u0027)"}],"source_content_type":"text/x-python","patch_set":27,"id":"ba0121b8_83a29d49","line":161,"in_reply_to":"ba0121b8_e3d39902","updated":"2016-03-30 18:49:40.000000000","message":"This does use the TempDir fixture...","commit_id":"b0fcc74db0c6a5d850dc5a768e31bf87877ac5f4"}]}
