)]}'
{"oslo_utils/specs_matcher.py":[{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"4573ee7f9cde5a583bc3a450e75d507ccd892d0a","unresolved":false,"context_lines":[{"line_number":18,"context_line":"# 1. The following operations are supported:"},{"line_number":19,"context_line":"#   \u003d, s\u003d\u003d, s!\u003d, s\u003e\u003d, s\u003e, s\u003c\u003d, s\u003c, \u003cin\u003e, \u003call-in\u003e, \u003cor\u003e, \u003d\u003d, !\u003d, \u003e\u003d, \u003c\u003d"},{"line_number":20,"context_line":"# 2. Note that \u003cor\u003e is handled in a different way below."},{"line_number":21,"context_line":"# 3. If the first word in the extra_specs is not one of the operators,"},{"line_number":22,"context_line":"#   it is ignored."},{"line_number":23,"context_line":"op_methods \u003d {"},{"line_number":24,"context_line":"    \u0027\u003d\u0027: lambda x, y: float(x) \u003e\u003d float(y),"}],"source_content_type":"text/x-python","patch_set":1,"id":"3aaa91ec_54004034","line":21,"updated":"2016-06-30 00:57:30.000000000","message":"what is \u0027extra_specs\u0027? Oh, this is from nova. so s/extra_specs/specs/.\n\nI guess we are ok calling this a \u0027specs_matcher\u0027? I know, you\u0027ll want me to suggest something better if I disagree.","commit_id":"e97f08bb077305ee52b79f85368f653cba1c17c7"},{"author":{"_account_id":1297,"name":"Joshua Harlow","email":"jxharlow@godaddy.com","username":"harlowja"},"change_message_id":"a6c02fae9b5321b1f22b5f12eddc3b76619ef82f","unresolved":false,"context_lines":[{"line_number":21,"context_line":"# 3. If the first word in the extra_specs is not one of the operators,"},{"line_number":22,"context_line":"#   it is ignored."},{"line_number":23,"context_line":"op_methods \u003d {"},{"line_number":24,"context_line":"    \u0027\u003d\u0027: lambda x, y: float(x) \u003e\u003d float(y),"},{"line_number":25,"context_line":"    \u0027\u003cin\u003e\u0027: lambda x, y: y in x,"},{"line_number":26,"context_line":"    \u0027\u003call-in\u003e\u0027: lambda x, y: all(val in x for val in y),"},{"line_number":27,"context_line":"    \u0027\u003d\u003d\u0027: lambda x, y: float(x) \u003d\u003d float(y),"}],"source_content_type":"text/x-python","patch_set":1,"id":"1a122d0e_94f19904","line":24,"updated":"2016-05-02 23:48:11.000000000","message":"Is this supposed to be \u0027\u003d\u003d\u0027?\n\nConfused when I see \u0027\u003d\u0027 that then uses \u003e\u003d\n\nWeird...","commit_id":"e97f08bb077305ee52b79f85368f653cba1c17c7"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"09ff2785194faeef71a71dee22848ca9bd7b94e9","unresolved":false,"context_lines":[{"line_number":21,"context_line":"# 3. If the first word in the extra_specs is not one of the operators,"},{"line_number":22,"context_line":"#   it is ignored."},{"line_number":23,"context_line":"op_methods \u003d {"},{"line_number":24,"context_line":"    \u0027\u003d\u0027: lambda x, y: float(x) \u003e\u003d float(y),"},{"line_number":25,"context_line":"    \u0027\u003cin\u003e\u0027: lambda x, y: y in x,"},{"line_number":26,"context_line":"    \u0027\u003call-in\u003e\u0027: lambda x, y: all(val in x for val in y),"},{"line_number":27,"context_line":"    \u0027\u003d\u003d\u0027: lambda x, y: float(x) \u003d\u003d float(y),"}],"source_content_type":"text/x-python","patch_set":1,"id":"1a122d0e_487414fd","line":24,"in_reply_to":"1a122d0e_354bfeb2","updated":"2016-05-05 11:45:32.000000000","message":"I dislike that operator too, but since it\u0027s already in nova I believe we should keep it? Or perhaps remove it but add some code that allows individual projects to extend the operator list","commit_id":"e97f08bb077305ee52b79f85368f653cba1c17c7"},{"author":{"_account_id":1297,"name":"Joshua Harlow","email":"jxharlow@godaddy.com","username":"harlowja"},"change_message_id":"e36bb2e260fd7b9256db75997b154d7741c4358f","unresolved":false,"context_lines":[{"line_number":21,"context_line":"# 3. If the first word in the extra_specs is not one of the operators,"},{"line_number":22,"context_line":"#   it is ignored."},{"line_number":23,"context_line":"op_methods \u003d {"},{"line_number":24,"context_line":"    \u0027\u003d\u0027: lambda x, y: float(x) \u003e\u003d float(y),"},{"line_number":25,"context_line":"    \u0027\u003cin\u003e\u0027: lambda x, y: y in x,"},{"line_number":26,"context_line":"    \u0027\u003call-in\u003e\u0027: lambda x, y: all(val in x for val in y),"},{"line_number":27,"context_line":"    \u0027\u003d\u003d\u0027: lambda x, y: float(x) \u003d\u003d float(y),"}],"source_content_type":"text/x-python","patch_set":1,"id":"1a122d0e_66edb7ef","line":24,"in_reply_to":"1a122d0e_487414fd","updated":"2016-05-05 15:16:15.000000000","message":"Ya I guess its ok seeing that it is pretty old (review 8089, woah), but what a weird operator that sort of goes against the whole definition of equality.","commit_id":"e97f08bb077305ee52b79f85368f653cba1c17c7"},{"author":{"_account_id":8688,"name":"Alexis Lee","email":"openstack@lxsli.co.uk","username":"lxsli"},"change_message_id":"d6e09d68517d61ace78271b492365db657672043","unresolved":false,"context_lines":[{"line_number":21,"context_line":"# 3. If the first word in the extra_specs is not one of the operators,"},{"line_number":22,"context_line":"#   it is ignored."},{"line_number":23,"context_line":"op_methods \u003d {"},{"line_number":24,"context_line":"    \u0027\u003d\u0027: lambda x, y: float(x) \u003e\u003d float(y),"},{"line_number":25,"context_line":"    \u0027\u003cin\u003e\u0027: lambda x, y: y in x,"},{"line_number":26,"context_line":"    \u0027\u003call-in\u003e\u0027: lambda x, y: all(val in x for val in y),"},{"line_number":27,"context_line":"    \u0027\u003d\u003d\u0027: lambda x, y: float(x) \u003d\u003d float(y),"}],"source_content_type":"text/x-python","patch_set":1,"id":"dab17558_a95ddf7a","line":24,"in_reply_to":"1a122d0e_66e1379b","updated":"2016-05-10 13:06:41.000000000","message":"we could issue a warning to use \u003e\u003d or \u003d\u003d","commit_id":"e97f08bb077305ee52b79f85368f653cba1c17c7"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"58705711e7b656487a65d4a77a6b33a7def944a9","unresolved":false,"context_lines":[{"line_number":21,"context_line":"# 3. If the first word in the extra_specs is not one of the operators,"},{"line_number":22,"context_line":"#   it is ignored."},{"line_number":23,"context_line":"op_methods \u003d {"},{"line_number":24,"context_line":"    \u0027\u003d\u0027: lambda x, y: float(x) \u003e\u003d float(y),"},{"line_number":25,"context_line":"    \u0027\u003cin\u003e\u0027: lambda x, y: y in x,"},{"line_number":26,"context_line":"    \u0027\u003call-in\u003e\u0027: lambda x, y: all(val in x for val in y),"},{"line_number":27,"context_line":"    \u0027\u003d\u003d\u0027: lambda x, y: float(x) \u003d\u003d float(y),"}],"source_content_type":"text/x-python","patch_set":1,"id":"1a122d0e_66e1379b","line":24,"in_reply_to":"1a122d0e_66edb7ef","updated":"2016-05-05 15:20:54.000000000","message":"lol true... Maybe the idea of allowing individual projects to extend the list is not a bad idea, at list it will give nova the change to make it backward compatible when moving their code to use this olso module.","commit_id":"e97f08bb077305ee52b79f85368f653cba1c17c7"},{"author":{"_account_id":9796,"name":"ChangBo Guo","email":"glongwave@gmail.com","username":"gcb"},"change_message_id":"a76ec68f3fb60daa74c15f1bf579b204b8563193","unresolved":false,"context_lines":[{"line_number":21,"context_line":"# 3. If the first word in the extra_specs is not one of the operators,"},{"line_number":22,"context_line":"#   it is ignored."},{"line_number":23,"context_line":"op_methods \u003d {"},{"line_number":24,"context_line":"    \u0027\u003d\u0027: lambda x, y: float(x) \u003e\u003d float(y),"},{"line_number":25,"context_line":"    \u0027\u003cin\u003e\u0027: lambda x, y: y in x,"},{"line_number":26,"context_line":"    \u0027\u003call-in\u003e\u0027: lambda x, y: all(val in x for val in y),"},{"line_number":27,"context_line":"    \u0027\u003d\u003d\u0027: lambda x, y: float(x) \u003d\u003d float(y),"}],"source_content_type":"text/x-python","patch_set":1,"id":"1a122d0e_354bfeb2","line":24,"in_reply_to":"1a122d0e_94f19904","updated":"2016-05-05 04:52:25.000000000","message":"\u003d (equal to or greater than as a number; same as vcpus case)\n\nThe original commit about this in https://review.openstack.org/#/c/8089/","commit_id":"e97f08bb077305ee52b79f85368f653cba1c17c7"},{"author":{"_account_id":1297,"name":"Joshua Harlow","email":"jxharlow@godaddy.com","username":"harlowja"},"change_message_id":"df03c09290c66f4cf014dcaf830eba6795b8c6fc","unresolved":false,"context_lines":[{"line_number":21,"context_line":"# 3. If the first word in the extra_specs is not one of the operators,"},{"line_number":22,"context_line":"#   it is ignored."},{"line_number":23,"context_line":"op_methods \u003d {"},{"line_number":24,"context_line":"    \u0027\u003d\u0027: lambda x, y: float(x) \u003e\u003d float(y),"},{"line_number":25,"context_line":"    \u0027\u003cin\u003e\u0027: lambda x, y: y in x,"},{"line_number":26,"context_line":"    \u0027\u003call-in\u003e\u0027: lambda x, y: all(val in x for val in y),"},{"line_number":27,"context_line":"    \u0027\u003d\u003d\u0027: lambda x, y: float(x) \u003d\u003d float(y),"}],"source_content_type":"text/x-python","patch_set":1,"id":"dab17558_72bee4ae","line":24,"in_reply_to":"dab17558_a95ddf7a","updated":"2016-05-11 22:52:30.000000000","message":"Ya, not sure, this is just weird :-P","commit_id":"e97f08bb077305ee52b79f85368f653cba1c17c7"},{"author":{"_account_id":9796,"name":"ChangBo Guo","email":"glongwave@gmail.com","username":"gcb"},"change_message_id":"ce461037df6440c12b3ddccca3cdc678ab4059fa","unresolved":false,"context_lines":[{"line_number":22,"context_line":"#   it is ignored."},{"line_number":23,"context_line":"op_methods \u003d {"},{"line_number":24,"context_line":"    \u0027\u003d\u0027: lambda x, y: float(x) \u003e\u003d float(y),"},{"line_number":25,"context_line":"    \u0027\u003cin\u003e\u0027: lambda x, y: y in x,"},{"line_number":26,"context_line":"    \u0027\u003call-in\u003e\u0027: lambda x, y: all(val in x for val in y),"},{"line_number":27,"context_line":"    \u0027\u003d\u003d\u0027: lambda x, y: float(x) \u003d\u003d float(y),"},{"line_number":28,"context_line":"    \u0027!\u003d\u0027: lambda x, y: float(x) !\u003d float(y),"},{"line_number":29,"context_line":"    \u0027\u003e\u003d\u0027: lambda x, y: float(x) \u003e\u003d float(y),"}],"source_content_type":"text/x-python","patch_set":1,"id":"3aaa91ec_3ffc2c71","line":26,"range":{"start_line":25,"start_character":0,"end_line":26,"end_character":56},"updated":"2016-07-01 05:10:00.000000000","message":"As Ruby Loo pointed out, these two methods have bug when x is a string, if x\u003d\"[\u0027ab\u0027, \u0027cd\u0027]\", y\u003d\u0027a\u0027 will work, we shouldn\u0027t match \u0027a\u0027.\n\nNova use specs_matcher in scheduler filter and match flavor\u0027s extral_spec values when filtering host. So I think the use case is not match characters.","commit_id":"e97f08bb077305ee52b79f85368f653cba1c17c7"},{"author":{"_account_id":9796,"name":"ChangBo Guo","email":"glongwave@gmail.com","username":"gcb"},"change_message_id":"00fae6fc35db8a0a95cacab4d5629e9673b37d3b","unresolved":false,"context_lines":[{"line_number":48,"context_line":"    if op !\u003d \u0027\u003cor\u003e\u0027 and not method:"},{"line_number":49,"context_line":"        return value \u003d\u003d req"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"    if value is None:"},{"line_number":52,"context_line":"        return False"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"    if op \u003d\u003d \u0027\u003cor\u003e\u0027:  # Ex: \u003cor\u003e v1 \u003cor\u003e v2 \u003cor\u003e v3"},{"line_number":55,"context_line":"        while True:"}],"source_content_type":"text/x-python","patch_set":1,"id":"3aaa91ec_0755e9c0","line":52,"range":{"start_line":51,"start_character":0,"end_line":52,"end_character":20},"updated":"2016-06-30 03:00:46.000000000","message":"move this to line 41 ?","commit_id":"e97f08bb077305ee52b79f85368f653cba1c17c7"},{"author":{"_account_id":9796,"name":"ChangBo Guo","email":"glongwave@gmail.com","username":"gcb"},"change_message_id":"87635b4a858f28b68678b94018c50e78c2238459","unresolved":false,"context_lines":[{"line_number":63,"context_line":"        return False"},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"    if words:"},{"line_number":66,"context_line":"        if op \u003d\u003d \u0027\u003call-in\u003e\u0027:  # requires a list not a string"},{"line_number":67,"context_line":"            return method(value, words)"},{"line_number":68,"context_line":"        return method(value, words[0])"},{"line_number":69,"context_line":"    return False"}],"source_content_type":"text/x-python","patch_set":1,"id":"3aaa91ec_72070c18","line":66,"range":{"start_line":66,"start_character":0,"end_line":66,"end_character":60},"updated":"2016-07-01 03:26:43.000000000","message":"tests are passing str !, we should check value type.\n\nI just submit a POC for Nova to confirm whether the extra check break functions in https://review.openstack.org/#/c/336347/.\n\nThe Poc will break unit tests.","commit_id":"e97f08bb077305ee52b79f85368f653cba1c17c7"}],"oslo_utils/tests/test_specs_matcher.py":[{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"4573ee7f9cde5a583bc3a450e75d507ccd892d0a","unresolved":false,"context_lines":[{"line_number":200,"context_line":"            req\u003d\u0027\u003e\u003d 3\u0027,"},{"line_number":201,"context_line":"            matches\u003dFalse)"},{"line_number":202,"context_line":""},{"line_number":203,"context_line":"    def test_specs_matches_all_with_op_allin(self):"},{"line_number":204,"context_line":"        values \u003d [\u0027aes\u0027, \u0027mmx\u0027, \u0027aux\u0027]"},{"line_number":205,"context_line":"        self._do_specs_matcher_test("},{"line_number":206,"context_line":"            value\u003dstr(values),"}],"source_content_type":"text/x-python","patch_set":1,"id":"3aaa91ec_af9cb16a","line":203,"updated":"2016-06-30 00:57:30.000000000","message":"For the \u003call-in\u003e tests here/below, does anyone know why they are calling the specs_matcher with value \u003d str(values) instead of value \u003d values?","commit_id":"e97f08bb077305ee52b79f85368f653cba1c17c7"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"79f36ff2793e81dc5548bc4b8a3fda6d96382168","unresolved":false,"context_lines":[{"line_number":200,"context_line":"            req\u003d\u0027\u003e\u003d 3\u0027,"},{"line_number":201,"context_line":"            matches\u003dFalse)"},{"line_number":202,"context_line":""},{"line_number":203,"context_line":"    def test_specs_matches_all_with_op_allin(self):"},{"line_number":204,"context_line":"        values \u003d [\u0027aes\u0027, \u0027mmx\u0027, \u0027aux\u0027]"},{"line_number":205,"context_line":"        self._do_specs_matcher_test("},{"line_number":206,"context_line":"            value\u003dstr(values),"}],"source_content_type":"text/x-python","patch_set":1,"id":"3aaa91ec_2f80c1be","line":203,"in_reply_to":"3aaa91ec_af9cb16a","updated":"2016-06-30 01:07:36.000000000","message":"I looked at the original nova patch, and no one commented about this, so I\u0027m guessing it is because the value is going to be entered as a string by the user?\n\nMy problem with that is either I don\u0027t understand what all-in is meant to do, or it isn\u0027t quite right. I\u0027ll give an example below.","commit_id":"e97f08bb077305ee52b79f85368f653cba1c17c7"},{"author":{"_account_id":9796,"name":"ChangBo Guo","email":"glongwave@gmail.com","username":"gcb"},"change_message_id":"00fae6fc35db8a0a95cacab4d5629e9673b37d3b","unresolved":false,"context_lines":[{"line_number":200,"context_line":"            req\u003d\u0027\u003e\u003d 3\u0027,"},{"line_number":201,"context_line":"            matches\u003dFalse)"},{"line_number":202,"context_line":""},{"line_number":203,"context_line":"    def test_specs_matches_all_with_op_allin(self):"},{"line_number":204,"context_line":"        values \u003d [\u0027aes\u0027, \u0027mmx\u0027, \u0027aux\u0027]"},{"line_number":205,"context_line":"        self._do_specs_matcher_test("},{"line_number":206,"context_line":"            value\u003dstr(values),"}],"source_content_type":"text/x-python","patch_set":1,"id":"3aaa91ec_07da094b","line":203,"in_reply_to":"3aaa91ec_af9cb16a","updated":"2016-06-30 03:00:46.000000000","message":"this way also works without str()","commit_id":"e97f08bb077305ee52b79f85368f653cba1c17c7"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"79f36ff2793e81dc5548bc4b8a3fda6d96382168","unresolved":false,"context_lines":[{"line_number":211,"context_line":"        values \u003d [\u0027aes\u0027, \u0027mmx\u0027, \u0027aux\u0027]"},{"line_number":212,"context_line":"        self._do_specs_matcher_test("},{"line_number":213,"context_line":"            value\u003dstr(values),"},{"line_number":214,"context_line":"            req\u003d\u0027\u003call-in\u003e mmx\u0027,"},{"line_number":215,"context_line":"            matches\u003dTrue)"},{"line_number":216,"context_line":""},{"line_number":217,"context_line":"    def test_specs_fails_with_op_allin(self):"}],"source_content_type":"text/x-python","patch_set":1,"id":"3aaa91ec_efc7d90f","line":214,"updated":"2016-06-30 01:07:36.000000000","message":"if I s/mmx/s/, it still matches. Should it? I\u0027m guessing not... :-(","commit_id":"e97f08bb077305ee52b79f85368f653cba1c17c7"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"40438f1bcd2c00df5dbb0ba0e96ffb4cd38856b9","unresolved":false,"context_lines":[{"line_number":211,"context_line":"        values \u003d [\u0027aes\u0027, \u0027mmx\u0027, \u0027aux\u0027]"},{"line_number":212,"context_line":"        self._do_specs_matcher_test("},{"line_number":213,"context_line":"            value\u003dstr(values),"},{"line_number":214,"context_line":"            req\u003d\u0027\u003call-in\u003e mmx\u0027,"},{"line_number":215,"context_line":"            matches\u003dTrue)"},{"line_number":216,"context_line":""},{"line_number":217,"context_line":"    def test_specs_fails_with_op_allin(self):"}],"source_content_type":"text/x-python","patch_set":1,"id":"3aaa91ec_a76ad8b0","line":214,"in_reply_to":"3aaa91ec_4755314e","updated":"2016-07-01 03:05:17.000000000","message":"I took a look at the next patch (https://review.openstack.org/#/c/313699/) and it is doing a similar thing as this one, so they are both right or both wrong, which is \u0027fine\u0027 for now. {Someone said they\u0027d check with nova folks about it.)","commit_id":"e97f08bb077305ee52b79f85368f653cba1c17c7"},{"author":{"_account_id":9796,"name":"ChangBo Guo","email":"glongwave@gmail.com","username":"gcb"},"change_message_id":"87635b4a858f28b68678b94018c50e78c2238459","unresolved":false,"context_lines":[{"line_number":211,"context_line":"        values \u003d [\u0027aes\u0027, \u0027mmx\u0027, \u0027aux\u0027]"},{"line_number":212,"context_line":"        self._do_specs_matcher_test("},{"line_number":213,"context_line":"            value\u003dstr(values),"},{"line_number":214,"context_line":"            req\u003d\u0027\u003call-in\u003e mmx\u0027,"},{"line_number":215,"context_line":"            matches\u003dTrue)"},{"line_number":216,"context_line":""},{"line_number":217,"context_line":"    def test_specs_fails_with_op_allin(self):"}],"source_content_type":"text/x-python","patch_set":1,"id":"3aaa91ec_2706e885","line":214,"in_reply_to":"3aaa91ec_4755314e","updated":"2016-07-01 03:26:43.000000000","message":"Yes, you are right. that\u0027s because  str(values) returns a string.  so character \u0027s\u0027 also works. \n\n\u003e /home/changboguo/code/os/oslo.utils/oslo_utils/specs_matcher.py(68)match()\n-\u003e return method(value, words)\n(Pdb) p value, words\n(\"[\u0027aes\u0027, \u0027mmx\u0027, \u0027aux\u0027]\", [\u0027txt\u0027, \u00273dnow\u0027])","commit_id":"e97f08bb077305ee52b79f85368f653cba1c17c7"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"62802a82b05fd0b0d6ca12e9b706451f53bc0a77","unresolved":false,"context_lines":[{"line_number":211,"context_line":"        values \u003d [\u0027aes\u0027, \u0027mmx\u0027, \u0027aux\u0027]"},{"line_number":212,"context_line":"        self._do_specs_matcher_test("},{"line_number":213,"context_line":"            value\u003dstr(values),"},{"line_number":214,"context_line":"            req\u003d\u0027\u003call-in\u003e mmx\u0027,"},{"line_number":215,"context_line":"            matches\u003dTrue)"},{"line_number":216,"context_line":""},{"line_number":217,"context_line":"    def test_specs_fails_with_op_allin(self):"}],"source_content_type":"text/x-python","patch_set":1,"id":"3aaa91ec_4755314e","line":214,"in_reply_to":"3aaa91ec_a7bfb5ce","updated":"2016-06-30 03:14:41.000000000","message":"No, the next test doesn\u0027t cover the case I just mentioned. My example passes because it is comparing presence of one character I think.","commit_id":"e97f08bb077305ee52b79f85368f653cba1c17c7"},{"author":{"_account_id":9796,"name":"ChangBo Guo","email":"glongwave@gmail.com","username":"gcb"},"change_message_id":"00fae6fc35db8a0a95cacab4d5629e9673b37d3b","unresolved":false,"context_lines":[{"line_number":211,"context_line":"        values \u003d [\u0027aes\u0027, \u0027mmx\u0027, \u0027aux\u0027]"},{"line_number":212,"context_line":"        self._do_specs_matcher_test("},{"line_number":213,"context_line":"            value\u003dstr(values),"},{"line_number":214,"context_line":"            req\u003d\u0027\u003call-in\u003e mmx\u0027,"},{"line_number":215,"context_line":"            matches\u003dTrue)"},{"line_number":216,"context_line":""},{"line_number":217,"context_line":"    def test_specs_fails_with_op_allin(self):"}],"source_content_type":"text/x-python","patch_set":1,"id":"3aaa91ec_a7bfb5ce","line":214,"in_reply_to":"3aaa91ec_efc7d90f","updated":"2016-06-30 03:00:46.000000000","message":"I don\u0027t think this pass the test, see next test method, that covers the case.","commit_id":"e97f08bb077305ee52b79f85368f653cba1c17c7"}]}
