@jensens Jenkins CI reporting about code analysis
See the full report here: http://jenkins.plone.org/job/package-plone.app.discussion/22//violations
```
plone/__init__.py:0:1: C101 Coding magic comment not found
plone/app/__init__.py:0:1: C101 Coding magic comment not found
ERROR: /home/jenkins/workspace/package-plone.app.discussion@2/plone/app/discussion/catalog.py Imports are incorrectly sorted.
plone/app/discussion/catalog.py:0:1: C101 Coding magic comment not found
plone/app/discussion/catalog.py:0:1: I001 found unsorted imports
plone/app/discussion/catalog.py:81:17: Q000 Remove bad quotes.
ERROR: /home/jenkins/workspace/package-plone.app.discussion@2/plone/app/discussion/comment.py Imports are incorrectly sorted.
plone/app/discussion/comment.py:0:1: I001 found unsorted imports
plone/app/discussion/comment.py:65:28: Q000 Remove bad quotes.
plone/app/discussion/comment.py:160:40: Q000 Remove bad quotes.
plone/app/discussion/comment.py:162:30: S001 found %s formatter
plone/app/discussion/comment.py:166:48: S001 found %s formatter
plone/app/discussion/comment.py:201:14: D001 found declareProtected replace it with AccessControl.ClassSecurityInfo.protected
plone/app/discussion/comment.py:295:21: Q000 Remove bad quotes.
plone/app/discussion/contentrules.py:0:1: C101 Coding magic comment not found
plone/app/discussion/contentrules.py:18:5: E731 do not assign a lambda expression, use a def
ERROR: /home/jenkins/workspace/package-plone.app.discussion@2/plone/app/discussion/conversation.py Imports are incorrectly sorted.
plone/app/discussion/conversation.py:0:1: C101 Coding magic comment not found
plone/app/discussion/conversation.py:0:1: I001 found unsorted imports
plone/app/discussion/conversation.py:56:27: Q000 Remove bad quotes.
plone/app/discussion/conversation.py:430:29: Q000 Remove bad quotes.
plone/app/discussion/events.py:0:1: C101 Coding magic comment not found
plone/app/discussion/interfaces.py:133:17: Q000 Remove bad quotes.
plone/app/discussion/interfaces.py:159:65: Q000 Remove bad quotes.
plone/app/discussion/interfaces.py:213:25: Q000 Remove bad quotes.
plone/app/discussion/interfaces.py:239:21: Q000 Remove bad quotes.
plone/app/discussion/interfaces.py:257:25: Q000 Remove bad quotes.
plone/app/discussion/interfaces.py:261:23: Q000 Remove bad quotes.
plone/app/discussion/interfaces.py:268:25: Q000 Remove bad quotes.
plone/app/discussion/interfaces.py:271:23: Q000 Remove bad quotes.
plone/app/discussion/interfaces.py:279:25: Q000 Remove bad quotes.
plone/app/discussion/interfaces.py:296:25: Q000 Remove bad quotes.
plone/app/discussion/subscribers.py:0:1: C101 Coding magic comment not found
ERROR: /home/jenkins/workspace/package-plone.app.discussion@2/plone/app/discussion/testing.py Imports are incorrectly sorted.
plone/app/discussion/testing.py:0:1: C101 Coding magic comment not found
plone/app/discussion/testing.py:0:1: I001 found unsorted imports
plone/app/discussion/testing.py:17:23: Q000 Remove bad quotes.
plone/app/discussion/testing.py:18:1: B901 blind except: statement
plone/app/discussion/testing.py:19:23: Q000 Remove bad quotes.
plone/app/discussion/testing.py:80:14: Q000 Remove bad quotes.
plone/app/discussion/testing.py:110:10: Q000 Remove bad quotes.
plone/app/discussion/testing.py:113:10: Q000 Remove bad quotes.
plone/app/discussion/testing.py:119:10: Q000 Remove bad quotes.
ERROR: /home/jenkins/workspace/package-plone.app.discussion@2/plone/app/discussion/tool.py Imports are incorrectly sorted.
plone/app/discussion/tool.py:0:1: C101 Coding magic comment not found
plone/app/discussion/tool.py:0:1: I001 found unsorted imports
plone/app/discussion/upgrades.py:0:1: C101 Coding magic comment not found
ERROR: /home/jenkins/workspace/package-plone.app.discussion@2/plone/app/discussion/tests/test_catalog.py Imports are incorrectly sorted.
plone/app/discussion/tests/test_catalog.py:0:1: C101 Coding magic comment not found
plone/app/discussion/tests/test_catalog.py:0:1: I001 found unsorted imports
plone/app/discussion/tests/test_catalog.py:77:25: Q000 Remove bad quotes.
plone/app/discussion/tests/test_catalog.py:95:38: S001 found %s formatter
plone/app/discussion/tests/test_catalog.py:102:25: Q000 Remove bad quotes.
plone/app/discussion/tests/test_catalog.py:123:38: S001 found %s formatter
plone/app/discussion/tests/test_catalog.py:130:25: Q000 Remove bad quotes.
plone/app/discussion/tests/test_catalog.py:146:25: Q000 Remove bad quotes.
plone/app/discussion/tests/test_catalog.py:161:25: Q000 Remove bad quotes.
plone/app/discussion/tests/test_catalog.py:179:38: S001 found %s formatter
plone/app/discussion/tests/test_catalog.py:187:25: Q000 Remove bad quotes.
plone/app/discussion/tests/test_catalog.py:200:25: Q000 Remove bad quotes.
plone/app/discussion/tests/test_catalog.py:212:25: Q000 Remove bad quotes.
plone/app/discussion/tests/test_catalog.py:223:25: Q000 Remove bad quotes.
plone/app/discussion/tests/test_catalog.py:231:41: Q000 Remove bad quotes.
plone/app/discussion/tests/test_catalog.py:238:25: Q000 Remove bad quotes.
plone/app/discussion/tests/test_catalog.py:265:38: S001 found %s formatter
plone/app/discussion/tests/test_catalog.py:284:38: S001 found %s formatter
plone/app/discussion/tests/test_catalog.py:292:47: Q000 Remove bad quotes.
plone/app/discussion/tests/test_catalog.py:332:40: Q000 Remove bad quotes.
plone/app/discussion/tests/test_catalog.py:365:25: Q000 Remove bad quotes.
plone/app/discussion/tests/test_catalog.py:371:25: Q000 Remove bad quotes.
plone/app/discussion/tests/test_catalog.py:414:25: Q000 Remove bad quotes.
plone/app/discussion/tests/test_catalog.py:421:25: Q000 Remove bad quotes.
plone/app/discussion/tests/test_catalog.py:435:41: Q000 Remove bad quotes.
plone/app/discussion/tests/test_catalog.py:435:49: Q000 Remove bad quotes.
plone/app/discussion/tests/test_catalog.py:538:25: Q000 Remove bad quotes.
ERROR: /home/jenkins/workspace/package-plone.app.discussion@2/plone/app/discussion/tests/test_comment.py Imports are incorrectly sorted.
plone/app/discussion/tests/test_comment.py:0:1: I001 found unsorted imports
plone/app/discussion/tests/test_comment.py:44:28: Q000 Remove bad quotes.
plone/app/discussion/tests/test_comment.py:45:28: Q000 Remove bad quotes.
plone/app/discussion/tests/test_comment.py:46:28: Q000 Remove bad quotes.
plone/app/discussion/tests/test_comment.py:95:32: Q000 Remove bad quotes.
plone/app/discussion/tests/test_comment.py:97:26: Q000 Remove bad quotes.
plone/app/discussion/tests/test_comment.py:103:26: Q000 Remove bad quotes.
plone/app/discussion/tests/test_comment.py:125:32: Q000 Remove bad quotes.
plone/app/discussion/tests/test_comment.py:131:28: Q000 Remove bad quotes.
plone/app/discussion/tests/test_comment.py:132:26: Q000 Remove bad quotes.
plone/app/discussion/tests/test_comment.py:136:32: Q000 Remove bad quotes.
plone/app/discussion/tests/test_comment.py:137:26: Q000 Remove bad quotes.
plone/app/discussion/tests/test_comment.py:159:13: Q000 Remove bad quotes.
plone/app/discussion/tests/test_comment.py:167:13: Q000 Remove bad quotes.
plone/app/discussion/tests/test_comment.py:180:25: Q000 Remove bad quotes.
plone/app/discussion/tests/test_comment.py:183:13: Q000 Remove bad quotes.
plone/app/discussion/tests/test_comment.py:188:25: Q000 Remove bad quotes.
plone/app/discussion/tests/test_comment.py:232:38: S001 found %s formatter
plone/app/discussion/tests/test_comment.py:263:38: S001 found %s formatter
plone/app/discussion/tests/test_comment.py:268:23: Q000 Remove bad quotes.
plone/app/discussion/tests/test_comment.py:305:13: Q000 Remove bad quotes.
plone/app/discussion/tests/test_comment.py:330:38: S001 found %s formatter
plone/app/discussion/tests/test_comment.py:367:38: S001 found %s formatter
plone/app/discussion/tests/test_comment.py:403:38: S001 found %s formatter
plone/app/discussion/tests/test_comment.py:438:38: S001 found %s formatter
plone/app/discussion/tests/test_comment.py:446:38: S001 found %s formatter
plone/app/discussion/tests/test_comment.py:455:38: S001 found %s formatter
plone/app/discussion/tests/test_comment.py:464:38: S001 found %s formatter
ERROR: /home/jenkins/workspace/package-plone.app.discussion@2/plone/app/discussion/tests/test_comments_viewlet.py Imports are incorrectly sorted.
plone/app/discussion/tests/test_comments_viewlet.py:0:1: I001 found unsorted imports
plone/app/discussion/tests/test_comments_viewlet.py:52:45: Q000 Remove bad quotes.
plone/app/discussion/tests/test_comments_viewlet.py:97:65: Q000 Remove bad quotes.
plone/app/discussion/tests/test_comments_viewlet.py:111:65: Q000 Remove bad quotes.
plone/app/discussion/tests/test_comments_viewlet.py:119:47: Q000 Remove bad quotes.
plone/app/discussion/tests/test_comments_viewlet.py:120:64: Q000 Remove bad quotes.
plone/app/discussion/tests/test_comments_viewlet.py:169:65: Q000 Remove bad quotes.
plone/app/discussion/tests/test_comments_viewlet.py:183:59: Q000 Remove bad quotes.
plone/app/discussion/tests/test_comments_viewlet.py:185:14: D001 found assertEquals replace it with assertEqual
plone/app/discussion/tests/test_comments_viewlet.py:193:47: Q000 Remove bad quotes.
plone/app/discussion/tests/test_comments_viewlet.py:195:64: Q000 Remove bad quotes.
plone/app/discussion/tests/test_comments_viewlet.py:237:65: Q000 Remove bad quotes.
plone/app/discussion/tests/test_comments_viewlet.py:251:13: Q000 Remove bad quotes.
plone/app/discussion/tests/test_comments_viewlet.py:295:65: Q000 Remove bad quotes.
plone/app/discussion/tests/test_comments_viewlet.py:310:13: Q000 Remove bad quotes.
plone/app/discussion/tests/test_comments_viewlet.py:357:65: Q000 Remove bad quotes.
plone/app/discussion/tests/test_comments_viewlet.py:406:27: Q000 Remove bad quotes.
plone/app/discussion/tests/test_comments_viewlet.py:441:13: Q000 Remove bad quotes.
plone/app/discussion/tests/test_comments_viewlet.py:522:13: Q000 Remove bad quotes.
plone/app/discussion/tests/test_comments_viewlet.py:523:13: Q000 Remove bad quotes.
plone/app/discussion/tests/test_comments_viewlet.py:528:35: Q000 Remove bad quotes.
plone/app/discussion/tests/test_comments_viewlet.py:533:13: Q000 Remove bad quotes.
plone/app/discussion/tests/test_comments_viewlet.py:534:13: Q000 Remove bad quotes.
plone/app/discussion/tests/test_comments_viewlet.py:535:13: Q000 Remove bad quotes.
plone/app/discussion/tests/test_comments_viewlet.py:546:13: Q000 Remove bad quotes.
plone/app/discussion/tests/test_comments_viewlet.py:547:13: Q000 Remove bad quotes.
plone/app/discussion/tests/test_comments_viewlet.py:548:13: Q000 Remove bad quotes.
plone/app/discussion/tests/test_comments_viewlet.py:604:63: S001 found %s formatter
ERROR: /home/jenkins/workspace/package-plone.app.discussion@2/plone/app/discussion/tests/test_contentrules.py Imports are incorrectly sorted.
plone/app/discussion/tests/test_contentrules.py:0:1: I001 found unsorted imports
plone/app/discussion/tests/test_contentrules.py:40:24: Q000 Remove bad quotes.
plone/app/discussion/tests/test_contentrules.py:41:35: Q000 Remove bad quotes.
plone/app/discussion/tests/test_contentrules.py:42:31: Q000 Remove bad quotes.
plone/app/discussion/tests/test_contentrules.py:43:32: Q000 Remove bad quotes.
plone/app/discussion/tests/test_contentrules.py:98:38: S001 found %s formatter
plone/app/discussion/tests/test_contentrules.py:102:38: Q000 Remove bad quotes.
plone/app/discussion/tests/test_contentrules.py:103:34: Q000 Remove bad quotes.
plone/app/discussion/tests/test_contentrules.py:104:35: Q000 Remove bad quotes.
plone/app/discussion/tests/test_controlpanel.py:32:18: Q000 Remove bad quotes.
plone/app/discussion/tests/test_controlpanel.py:39:56: Q000 Remove bad quotes.
ERROR: /home/jenkins/workspace/package-plone.app.discussion@2/plone/app/discussion/tests/test_conversation.py Imports are incorrectly sorted.
plone/app/discussion/tests/test_conversation.py:0:1: C101 Coding magic comment not found
plone/app/discussion/tests/test_conversation.py:0:1: I001 found unsorted imports
plone/app/discussion/tests/test_conversation.py:27:1: B901 blind except: statement
plone/app/discussion/tests/test_conversation.py:85:35: Q000 Remove bad quotes.
plone/app/discussion/tests/test_conversation.py:87:35: Q000 Remove bad quotes.
plone/app/discussion/tests/test_conversation.py:90:27: Q000 Remove bad quotes.
plone/app/discussion/tests/test_conversation.py:437:36: Q000 Remove bad quotes.
plone/app/discussion/tests/test_conversation.py:442:36: Q000 Remove bad quotes.
plone/app/discussion/tests/test_conversation.py:447:36: Q000 Remove bad quotes.
plone/app/discussion/tests/test_conversation.py:452:36: Q000 Remove bad quotes.
plone/app/discussion/tests/test_conversation.py:842:38: S001 found %s formatter
plone/app/discussion/tests/test_conversation.py:846:38: S001 found %s formatter
plone/app/discussion/tests/test_conversation.py:851:38: S001 found %s formatter
ERROR: /home/jenkins/workspace/package-plone.app.discussion@2/plone/app/discussion/tests/test_events.py Imports are incorrectly sorted.
plone/app/discussion/tests/test_events.py:0:1: I001 found unsorted imports
plone/app/discussion/tests/test_events.py:89:26: Q000 Remove bad quotes.
plone/app/discussion/tests/test_events.py:142:26: Q000 Remove bad quotes.
plone/app/discussion/tests/test_events.py:155:38: S001 found %s formatter
plone/app/discussion/tests/test_events.py:175:38: S001 found %s formatter
ERROR: /home/jenkins/workspace/package-plone.app.discussion@2/plone/app/discussion/tests/test_indexers.py Imports are incorrectly sorted.
plone/app/discussion/tests/test_indexers.py:0:1: C101 Coding magic comment not found
plone/app/discussion/tests/test_indexers.py:0:1: I001 found unsorted imports
plone/app/discussion/tests/test_indexers.py:42:28: Q000 Remove bad quotes.
plone/app/discussion/tests/test_indexers.py:43:36: Q000 Remove bad quotes.
plone/app/discussion/tests/test_indexers.py:50:28: Q000 Remove bad quotes.
plone/app/discussion/tests/test_indexers.py:51:36: Q000 Remove bad quotes.
plone/app/discussion/tests/test_indexers.py:58:28: Q000 Remove bad quotes.
plone/app/discussion/tests/test_indexers.py:59:36: Q000 Remove bad quotes.
plone/app/discussion/tests/test_indexers.py:121:27: Q000 Remove bad quotes.
plone/app/discussion/tests/test_indexers.py:122:31: Q000 Remove bad quotes.
plone/app/discussion/tests/test_indexers.py:152:35: Q000 Remove bad quotes.
plone/app/discussion/tests/test_indexers.py:152:41: Q000 Remove bad quotes.
ERROR: /home/jenkins/workspace/package-plone.app.discussion@2/plone/app/discussion/tests/test_moderation_view.py Imports are incorrectly sorted.
plone/app/discussion/tests/test_moderation_view.py:0:1: I001 found unsorted imports
plone/app/discussion/tests/test_moderation_view.py:78:38: S001 found %s formatter
plone/app/discussion/tests/test_moderation_view.py:86:38: S001 found %s formatter
plone/app/discussion/tests/test_moderation_view.py:94:38: S001 found %s formatter
ERROR: /home/jenkins/workspace/package-plone.app.discussion@2/plone/app/discussion/tests/test_notifications.py Imports are incorrectly sorted.
plone/app/discussion/tests/test_notifications.py:0:1: I001 found unsorted imports
plone/app/discussion/tests/test_notifications.py:35:44: Q000 Remove bad quotes.
plone/app/discussion/tests/test_notifications.py:59:32: Q000 Remove bad quotes.
plone/app/discussion/tests/test_notifications.py:81:13: Q000 Remove bad quotes.
plone/app/discussion/tests/test_notifications.py:82:13: S001 found % formatter
plone/app/discussion/tests/test_notifications.py:97:32: Q000 Remove bad quotes.
plone/app/discussion/tests/test_notifications.py:127:32: Q000 Remove bad quotes.
plone/app/discussion/tests/test_notifications.py:142:32: Q000 Remove bad quotes.
plone/app/discussion/tests/test_notifications.py:147:32: Q000 Remove bad quotes.
plone/app/discussion/tests/test_notifications.py:174:44: Q000 Remove bad quotes.
plone/app/discussion/tests/test_notifications.py:222:13: Q000 Remove bad quotes.
plone/app/discussion/tests/test_notifications.py:223:13: S001 found % formatter
plone/app/discussion/tests/test_notifications.py:229:13: S001 found % formatter
plone/app/discussion/tests/test_notifications.py:233:13: S001 found % formatter
plone/app/discussion/tests/test_robot.py:0:1: C101 Coding magic comment not found
ERROR: /home/jenkins/workspace/package-plone.app.discussion@2/plone/app/discussion/tests/test_workflow.py Imports are incorrectly sorted.
plone/app/discussion/tests/test_workflow.py:0:1: I001 found unsorted imports
plone/app/discussion/tests/test_workflow.py:90:27: Q000 Remove bad quotes.
plone/app/discussion/tests/test_workflow.py:129:38: S001 found %s formatter
plone/app/discussion/tests/test_workflow.py:195:38: S001 found %s formatter
ERROR: /home/jenkins/workspace/package-plone.app.discussion@2/plone/app/discussion/browser/captcha.py Imports are incorrectly sorted.
plone/app/discussion/browser/captcha.py:0:1: I001 found unsorted imports
plone/app/discussion/browser/captcha.py:54:39: Q000 Remove bad quotes.
ERROR: /home/jenkins/workspace/package-plone.app.discussion@2/plone/app/discussion/browser/comment.py Imports are incorrectly sorted.
plone/app/discussion/browser/comment.py:0:1: C101 Coding magic comment not found
plone/app/discussion/browser/comment.py:0:1: I001 found unsorted imports
plone/app/discussion/browser/comment.py:49:19: Q000 Remove bad quotes.
plone/app/discussion/browser/comment.py:49:20: S001 found %s formatter
plone/app/discussion/browser/comment.py:51:41: S001 found %s formatter
plone/app/discussion/browser/comment.py:57:10: Q000 Remove bad quotes.
plone/app/discussion/browser/comment.py:96:52: Q000 Remove bad quotes.
plone/app/discussion/browser/comment.py:99:40: Q000 Remove bad quotes.
plone/app/discussion/browser/comment.py:99:58: Q000 Remove bad quotes.
ERROR: /home/jenkins/workspace/package-plone.app.discussion@2/plone/app/discussion/browser/comments.py Imports are incorrectly sorted.
plone/app/discussion/browser/comments.py:0:1: I001 found unsorted imports
plone/app/discussion/browser/comments.py:84:39: Q000 Remove bad quotes.
plone/app/discussion/browser/comments.py:90:35: Q000 Remove bad quotes.
plone/app/discussion/browser/comments.py:124:41: Q000 Remove bad quotes.
plone/app/discussion/browser/comments.py:125:41: Q000 Remove bad quotes.
plone/app/discussion/browser/comments.py:126:42: Q000 Remove bad quotes.
plone/app/discussion/browser/comments.py:128:1: C901 'CommentForm.handleComment' is too complex (17)
plone/app/discussion/browser/comments.py:137:32: Q000 Remove bad quotes.
plone/app/discussion/browser/comments.py:138:32: Q000 Remove bad quotes.
plone/app/discussion/browser/comments.py:210:53: Q000 Remove bad quotes.
plone/app/discussion/browser/comments.py:258:19: Q000 Remove bad quotes.
plone/app/discussion/browser/comments.py:259:22: Q000 Remove bad quotes.
plone/app/discussion/browser/comments.py:282:13: W503 line break before binary operator
plone/app/discussion/browser/comments.py:283:13: W503 line break before binary operator
plone/app/discussion/browser/comments.py:359:39: Q000 Remove bad quotes.
plone/app/discussion/browser/comments.py:362:41: Q000 Remove bad quotes.
plone/app/discussion/browser/comments.py:370:41: Q000 Remove bad quotes.
plone/app/discussion/browser/comments.py:378:37: Q000 Remove bad quotes.
plone/app/discussion/browser/comments.py:448:20: Q000 Remove bad quotes.
plone/app/discussion/browser/comments.py:448:21: S001 found %s formatter
plone/app/discussion/browser/comments.py:494:17: S001 found %s formatter
ERROR: /home/jenkins/workspace/package-plone.app.discussion@2/plone/app/discussion/browser/controlpanel.py Imports are incorrectly sorted.
plone/app/discussion/browser/controlpanel.py:0:1: I001 found unsorted imports
plone/app/discussion/browser/controlpanel.py:26:10: Q000 Remove bad quotes.
plone/app/discussion/browser/controlpanel.py:84:55: Q000 Remove bad quotes.
plone/app/discussion/browser/controlpanel.py:85:48: Q000 Remove bad quotes.
plone/app/discussion/browser/controlpanel.py:90:55: Q000 Remove bad quotes.
plone/app/discussion/browser/controlpanel.py:91:40: Q000 Remove bad quotes.
plone/app/discussion/browser/controlpanel.py:91:41: S001 found %s formatter
plone/app/discussion/browser/controlpanel.py:107:46: Q000 Remove bad quotes.
plone/app/discussion/browser/controlpanel.py:113:27: Q000 Remove bad quotes.
plone/app/discussion/browser/controlpanel.py:120:27: Q000 Remove bad quotes.
plone/app/discussion/browser/controlpanel.py:122:27: Q000 Remove bad quotes.
plone/app/discussion/browser/controlpanel.py:125:27: Q000 Remove bad quotes.
plone/app/discussion/browser/controlpanel.py:128:27: Q000 Remove bad quotes.
plone/app/discussion/browser/controlpanel.py:132:27: Q000 Remove bad quotes.
plone/app/discussion/browser/controlpanel.py:138:27: Q000 Remove bad quotes.
plone/app/discussion/browser/controlpanel.py:164:46: Q000 Remove bad quotes.
ERROR: /home/jenkins/workspace/package-plone.app.discussion@2/plone/app/discussion/browser/conversation.py Imports are incorrectly sorted.
plone/app/discussion/browser/conversation.py:0:1: C101 Coding magic comment not found
plone/app/discussion/browser/conversation.py:0:1: I001 found unsorted imports
plone/app/discussion/browser/conversation.py:15:1: B901 blind except: statement
plone/app/discussion/browser/conversation.py:27:1: C901 'ConversationView._enabled_for_archetypes' is too complex (14)
plone/app/discussion/browser/conversation.py:133:12: P002 found "hasattr", consider replacing it
plone/app/discussion/browser/conversation.py:133:29: Q000 Remove bad quotes.
ERROR: /home/jenkins/workspace/package-plone.app.discussion@2/plone/app/discussion/browser/migration.py Imports are incorrectly sorted.
plone/app/discussion/browser/migration.py:0:1: C101 Coding magic comment not found
plone/app/discussion/browser/migration.py:0:1: I001 found unsorted imports
plone/app/discussion/browser/migration.py:31:1: C901 'View.__call__' is too complex (32)
plone/app/discussion/browser/migration.py:38:19: Q000 Remove bad quotes.
plone/app/discussion/browser/migration.py:42:16: Q000 Remove bad quotes.
plone/app/discussion/browser/migration.py:74:26: Q000 Remove bad quotes.
plone/app/discussion/browser/migration.py:76:31: Q000 Remove bad quotes.
plone/app/discussion/browser/migration.py:77:22: S001 found %s formatter
plone/app/discussion/browser/migration.py:175:25: Q000 Remove bad quotes.
plone/app/discussion/browser/migration.py:175:26: S001 found %s formatter
plone/app/discussion/browser/migration.py:185:13: Q000 Remove bad quotes.
plone/app/discussion/browser/migration.py:185:20: S001 found %s formatter
plone/app/discussion/browser/migration.py:199:13: Q000 Remove bad quotes.
plone/app/discussion/browser/migration.py:199:20: S001 found %s formatter
plone/app/discussion/browser/migration.py:200:13: Q000 Remove bad quotes.
plone/app/discussion/browser/migration.py:200:20: S001 found %s formatter
plone/app/discussion/browser/migration.py:201:13: Q000 Remove bad quotes.
plone/app/discussion/browser/migration.py:201:20: S001 found %s formatter
plone/app/discussion/browser/migration.py:203:13: Q000 Remove bad quotes.
plone/app/discussion/browser/migration.py:204:13: Q000 Remove bad quotes.
plone/app/discussion/browser/migration.py:222:21: Q000 Remove bad quotes.
plone/app/discussion/browser/migration.py:223:31: S001 found %s formatter
plone/app/discussion/browser/migration.py:231:17: Q000 Remove bad quotes.
plone/app/discussion/browser/migration.py:232:17: Q000 Remove bad quotes.
plone/app/discussion/browser/migration.py:233:17: Q000 Remove bad quotes.
plone/app/discussion/browser/migration.py:233:28: S001 found %s formatter
plone/app/discussion/browser/migration.py:240:17: Q000 Remove bad quotes.
plone/app/discussion/browser/migration.py:242:13: Q000 Remove bad quotes.
plone/app/discussion/browser/migration.py:243:13: Q000 Remove bad quotes.
plone/app/discussion/browser/migration.py:244:13: Q000 Remove bad quotes.
plone/app/discussion/browser/migration.py:246:13: Q000 Remove bad quotes.
plone/app/discussion/browser/migration.py:247:13: S001 found % formatter
plone/app/discussion/browser/migration.py:251:17: Q000 Remove bad quotes.
plone/app/discussion/browser/migration.py:251:18: S001 found %s formatter
plone/app/discussion/browser/migration.py:255:17: Q000 Remove bad quotes.
plone/app/discussion/browser/migration.py:256:17: Q000 Remove bad quotes.
plone/app/discussion/browser/migration.py:260:17: Q000 Remove bad quotes.
plone/app/discussion/browser/migration.py:261:17: Q000 Remove bad quotes.
ERROR: /home/jenkins/workspace/package-plone.app.discussion@2/plone/app/discussion/browser/moderation.py Imports are incorrectly sorted.
plone/app/discussion/browser/moderation.py:0:1: I001 found unsorted imports
plone/app/discussion/browser/moderation.py:104:19: Q000 Remove bad quotes.
plone/app/discussion/browser/moderation.py:105:22: Q000 Remove bad quotes.
plone/app/discussion/browser/moderation.py:138:17: W503 line break before binary operator
plone/app/discussion/browser/moderation.py:143:17: W503 line break before binary operator
plone/app/discussion/browser/moderation.py:182:15: Q000 Remove bad quotes.
plone/app/discussion/browser/moderation.py:183:18: Q000 Remove bad quotes.
plone/app/discussion/browser/traversal.py:0:1: C101 Coding magic comment not found
plone/app/discussion/browser/traversal.py:32:20: Q000 Remove bad quotes.
```
You can run that yourself using buildout.coredev ``experimental/qa.cfg`` config file.


Why this change? I thought `Box::new` was the preferred syntax. It's all I can find in the Rust docs: https://doc.rust-lang.org/std/boxed/struct.Box.html


I try to make the above changes _before_ I perform the repo sync command. Then after the repo sync command, I go and checkout the master and develop branches (whichever branches are specified by the branch element) so Git flow "thinks" it is configured.  This last part of checking out the branches needs to be automated as part of the repo sync command. I'm planning on looking into this next.


If this is intended to impact the build process, can I get some details on scope? re: this changeset, would this result in paths that use internal resolution inside the dependency? e.g. `require('postcss-url/utils').processInline`? In case yes, we should avoid this in favor of accessing the top-level package API, e.g. `require('postcss-url').processInline`, the former creates a coupling with the internal file structure of the package, which can be though of an API that is neither guaranteed nor typically tested.


@CaptainHayashi @Q-Mart

Your thoughts on this? The show data returned from this endpoint is different to that from `/timeslot/currentandnext` and they can't have the same struct type name. The only thing I could think of would be putting them into separate sub-packages.


no. I give up


Still that mothercell is now a function error? :@


What makes this a performance optimisation?


The reason being was that IF this showed some gains at STC and MTC I was going to suggest opening up pawn hash as a UCI Option. I pictured this would be great for users, especially if there was a strength gain at LTC.


It's only cosmetic and low priority. Unlikely to be used, unless someone agrees 100% with you. But if I had wanted that change in the PR before it got merged, I would have removed all spaces and only left commas between the values.


I don't understand if/how this implementation works with multiple inserts of the same value (which should be a no-op with this exact implementation, but a future key-value tree would allow it to be used as a map structure).


ASIHPdev (shenb) - x86_64-Linux-Ubuntu-14.04-gcc-4.8: Tests Failed (1121 of 1986 tests passed, 0 test warnings)

![Build Badge](http://img.shields.io/badge/build%20status-warnings-yellow.svg) ![Test Badge](http://img.shields.io/badge/tests%20passed-56.45%25-red.svg)


typo: is -> if


Yes. I'd say that for now we need the project to be working "out of the box"  with default colors. This would unblock people from making PR's with updated components.


`<= *x =>` is so weird to look at :grinning:

Why do we need the `&` in the match block and the deref on the guard clause?


Ok, I left this option alone as it doesn't seem to be causing any problems.


Don't commit your confidential. I left then blank on purpose...


box syntax is still unstable but included in one of the RFCs as far as I can remember. Anyhow, personally box syntax has more appeal to me than Box::new. That is, it goes nicely with ref keyword, etc.


@jensens Jenkins CI reporting about code analysis
See the full report here: http://jenkins.plone.org/job/package-plone.app.testing/16//violations
```
plone/app/testing/cleanup.py:16:5: F401 'Products' imported but unused
```
You can run that yourself using buildout.coredev ``experimental/qa.cfg`` config file.


This looks neat, although I'd prefer `x if item < *x => match self.left`, mostly because it breaks the `<=`/`=>` symmetry, but also to match previous semantics.


@RJP43  it looks really good, and I am only stalling on the very last sentence. I literally don't know what it means, and I think you can safely just scrap it. The language is really unclear, but it sounds like you are saying that computer programmers aren't digital humanists (but there is a lot of overlap, do that is not a good thing to say) and that Twitter and Google users?? have been on Git for years--which does not seem right to presume either.


Hm. I do kind of like it, but I'm trying to stick to stable Rust only—otherwise I end up spending lots of time catching up with the latest unstable feature as they change.


rip me


*Haegeman


Oops, that's my mistake. Should have been < instead of <=.


Could you explain this one?


@traversaro I would like to add my MTB sensors to this URDF and use it for testing. Opinions?


Further, it doesn't make sense to imply that Git is the only way to facilitate large-scale collaborations. You may want to be saying something different--that both small and large scale collaborations are possible, but I would concentrate on the experience you already have at the scale you already know.


ASIHPdev (shenb) - x86_64-Linux-Ubuntu-14.04-cppcheck-1.61: OK (0 of 0 tests passed, 0 test warnings)

![Build Badge](http://img.shields.io/badge/build%20status-passing-green.svg)


not really sure what that means, but I guess you can explain it to me on
monday.

On Sun, Jan 31, 2016 at 5:00 PM, dothework <notifications@github.com> wrote:

> @americool <https://github.com/americool> DWMR here. :title in that
> checkpoint we were chatting about is indeed a routing directive. Ship code.
>
> —
> Reply to this email directly or view it on GitHub
> <https://github.com/americool/bloccit/commit/a88d4fa7fe244491fc94c364782e0f90af5eb5bc#commitcomment-15788142>
> .
>


Doesn't work on the rpi, thats why its this line. Will investigate further


But I like it a lot--it's definitely on target with the conference theme if communities in collaboration!


Else it will install webmin in an other location, had it before will investigate what it does without it.


http://jsfiddle.net/ssSt5/2/ @gajus


Added some notes


# _****_


Looks like the badges haven't translated well to the rst format.


Done in 10bae31dd22.


@nabildanial: there's no visible change to SF users. what's your point ?


It's for two reasons. First, Node is generic, and therefore, since we are using guards, passing the match by value will destroy the variable at first guard yielding a lovely compiler error. So, we need to pass by reference. Dereferencing is there due to the fact T is constrained to be of Ord type class but &T isn't.


## ****__


We can use the schema it as an exemple


My bad, Thanks for fixing :smile:


I think you meant canola


* TODO: What should happen if php-fpm failed to restart


TeamCity MonoGame :: Develop (Win) [Build 3.5.0.1271](http://teamcity.monogame.net/viewLog.html?buildId=14209&buildTypeId=MonoGame_DevelopWin&guest=1) outcome was **SUCCESS**
Summary: Tests passed: 584, ignored: 6 Build time: 00:37:24


TeamCity MonoGame :: Develop (Win) [Build 3.5.0.1272](http://teamcity.monogame.net/viewLog.html?buildId=14213&buildTypeId=MonoGame_DevelopWin&guest=1) is now running


The cancancan restrict is in the ability already.


Thanks, making corrections now and will re-post what will be submitted.


Would be great if you could send a PR @philikon :)


ASIHPdev (shenb) - x86_64-Linux-Ubuntu-14.04-gcc-4.8-UnitTestsCoverage-Debug: Build Failed

![Build Badge](http://img.shields.io/badge/build%20status-failing-red.svg) ![Test Badge](http://img.shields.io/badge/tests%20passed-64.25%25-red.svg) ![Coverage Badge](http://img.shields.io/badge/coverage%20status-0.0%25-red.svg)


This makes sure the content is bytes, and uses a memory stream instead of a NamedTempFile


This research was done as an admin on a rust server.  Non admin players don't call `DoImmediateDemolish`.  My guess is that they call `DoDemolish`.  Please change this one to `OnBuildingBlockDemolishAdmin` and then add a new hook for `DoDemolish` and call that hook `OnBuildingBlockDemolish`


This is a good point, `def` it is :)


Wrong capitalisation. Should be "dataRate".


directive 선언시 이름은 ngInitFocus 이지만
실제 사용시에는 ng-init-focus 가 된다.
html 표준 네이밍을 따르기 위해 angular에서 자동으로 대문자는 -로 치환해주는것


Wouldn't it be slightly more efficient to just store the initial `length` of the `listeners` array and only iterate up to that index (rather than copying the array)? I assume you're copying it in case a listener results in a new subscriber being added to the array- but since subscribers are added onto the end of the array... it seems like storing the initial length would be sufficient.

(I think it's actually a tiny bit more performant to store `length` in a var before iterating anyway.)


test


Another good point...i think I was just _wanting_ to make a comprehension method with my new ruby skills :P


link는 directive가 사용된 element와의 연결고리이다.
function의 인자값으로 온 값들은
1. scope : directive(이하 디렉티브) 가 사용된 곳의 $scope
2. element : 디렉티브가 사용된 곳의 html 태그영역
3. attrs : 디렉티브가 사용된 곳의 attribute들을 배열로 반환한값


Why remove this? Wouldn't it be better to replace the entire if with:
`builder.setDataJson(jsonObj.toString());`
No need for an if. We already have a successfully parsed json object. Just need to convert it to a string and call the setter.


Part of #74.


Ahh yes, thank you for raising the bar. I remember reading this when I first started using git...and then saw few people doing it and forgot the convention...and didn't get into the habit. I've been working to follow this at work and here since you mentioned it!


디렉티브 선언시 해당 디렉티브가 특정 영역에서만 사용할수 있도록 제한(restrict)을 걸수가 있다.
범위는 4가지인데
E:element, A:attribute, C:class, M:comment(주석) 이다
지금처럼 이름이 helloWorld이고, restrict가 E인 디렉티브는
html 영역에서는 <hello-world>로 사용할 수 있다.


This would work great with a vehicle streamer if the objects under the vehicles are in air, but that's none of my business. The vehicles should stream last. * wink wink @kurta999 *

Close enough to #86 .


movie 라는 디렉티브의 attribute로
username, img, reputation이 있는것이다.
이들이 디렉티브의 link function에서 attrs에 배열로 전달된다.


Merge.


(!) This shouldn't have been merged as the last diff chunk is broken code.


디렉티브는 선언시 원하는 템플릿을 만들어주기도 하는데
이러한 기능을 template 속성에서 설정한다.
link function에서 scope영역에 username, reputation, img에 값을 할당하여
template에서 해당 값들을 binding하여 사용하는 예제이다.
(즉 link에서 $scope.usename, $scope.reputation, $scope.img 를 생성하여 값을 할당하고,
template에서 {{}} 로 $scope영역의 값들을 호출하여 사용한 것)


Will elements be removed from this list during runtime? If not this might grow very big.
I propose the usage of a bounded list or array


restrict A로 선언한 디렉티브라서 li 엘리먼트의 attribute로 사용된것이다.


element.css 라는 것은 정확히는 angular의 기능은 아니다.
jqLite라는 jquery의 경량화 버전을 angular에서는 기본 장착되어있어,
selector의 기능이 필요할때는 이러한 jqLite의 기능을 활용한다.


@adamcheasley Jenkins CI reporting about code analysis
See the full report here: http://jenkins.plone.org/job/package-plone.api/1//violations
```
src/plone/__init__.py:0:1: C101 Coding magic comment not found
ERROR: /home/jenkins/workspace/package-plone.api/src/plone/api/__init__.py Imports are incorrectly sorted.
src/plone/api/__init__.py:0:1: C101 Coding magic comment not found
src/plone/api/__init__.py:0:1: I001 found unsorted imports
ERROR: /home/jenkins/workspace/package-plone.api/src/plone/api/content.py Imports are incorrectly sorted.
src/plone/api/content.py:0:1: I001 found unsorted imports
src/plone/api/content.py:59:37: Q000 Remove bad quotes.
src/plone/api/content.py:62:37: Q000 Remove bad quotes.
src/plone/api/content.py:65:80: E501 line too long (83 > 79 characters)
src/plone/api/content.py:78:34: F812 list comprehension redefines 'type' from line 25
src/plone/api/content.py:83:28: S001 found %s formatter
src/plone/api/content.py:84:13: Q000 Remove bad quotes.
src/plone/api/content.py:85:13: Q000 Remove bad quotes.
src/plone/api/content.py:85:14: S001 found %s formatter
src/plone/api/content.py:216:37: Q000 Remove bad quotes.
src/plone/api/content.py:219:37: Q000 Remove bad quotes.
src/plone/api/content.py:325:80: E501 line too long (83 > 79 characters)
src/plone/api/content.py:328:34: S001 found %s formatter
src/plone/api/content.py:329:13: Q000 Remove bad quotes.
src/plone/api/content.py:330:13: Q000 Remove bad quotes.
src/plone/api/content.py:330:14: S001 found %s formatter
src/plone/api/content.py:349:37: Q000 Remove bad quotes.
src/plone/api/content.py:352:37: Q000 Remove bad quotes.
src/plone/api/content.py:355:37: Q000 Remove bad quotes.
src/plone/api/content.py:366:5: B901 blind except: statement
src/plone/api/content.py:367:80: E501 line too long (80 > 79 characters)
src/plone/api/content.py:369:80: E501 line too long (90 > 79 characters)
src/plone/api/content.py:374:44: S001 found %s formatter
src/plone/api/content.py:375:13: Q000 Remove bad quotes.
src/plone/api/content.py:376:13: Q000 Remove bad quotes.
src/plone/api/content.py:376:14: S001 found %s formatter
ERROR: /home/jenkins/workspace/package-plone.api/src/plone/api/portal.py Imports are incorrectly sorted.
src/plone/api/portal.py:0:1: I001 found unsorted imports
src/plone/api/portal.py:25:80: E501 line too long (80 > 79 characters)
src/plone/api/portal.py:35:8: P002 found "hasattr", consider replacing it
src/plone/api/portal.py:41:9: Q000 Remove bad quotes.
src/plone/api/portal.py:42:9: Q000 Remove bad quotes.
src/plone/api/portal.py:43:9: Q000 Remove bad quotes.
src/plone/api/portal.py:60:26: Q000 Remove bad quotes.
src/plone/api/portal.py:78:37: Q000 Remove bad quotes.
src/plone/api/portal.py:92:44: S001 found %s formatter
src/plone/api/portal.py:93:13: Q000 Remove bad quotes.
src/plone/api/portal.py:94:13: Q000 Remove bad quotes.
src/plone/api/portal.py:94:14: S001 found %s formatter
src/plone/api/portal.py:215:37: Q000 Remove bad quotes.
src/plone/api/portal.py:220:31: S001 found %s formatter
src/plone/api/user.py:58:37: Q000 Remove bad quotes.
src/plone/api/tests/base.py:43:28: Q000 Remove bad quotes.
src/plone/api/tests/base.py:45:28: Q000 Remove bad quotes.
ERROR: /home/jenkins/workspace/package-plone.api/src/plone/api/tests/test_content.py Imports are incorrectly sorted.
src/plone/api/tests/test_content.py:0:1: I001 found unsorted imports
src/plone/api/tests/test_content.py:76:80: E501 line too long (94 > 79 characters)
src/plone/api/tests/test_content.py:81:80: E501 line too long (98 > 79 characters)
src/plone/api/tests/test_content.py:100:80: E501 line too long (96 > 79 characters)
src/plone/api/tests/test_content.py:126:41: Q000 Remove bad quotes.
src/plone/api/tests/test_content.py:126:80: E501 line too long (80 > 79 characters)
src/plone/api/tests/test_content.py:298:80: E501 line too long (91 > 79 characters)
src/plone/api/tests/test_content.py:398:80: E501 line too long (80 > 79 characters)
src/plone/api/tests/test_content.py:399:80: E501 line too long (97 > 79 characters)
src/plone/api/tests/test_content.py:401:80: E501 line too long (88 > 79 characters)
src/plone/api/tests/test_content.py:416:13: Q000 Remove bad quotes.
src/plone/api/tests/test_content.py:417:13: Q000 Remove bad quotes.
src/plone/api/tests/test_content.py:418:13: Q000 Remove bad quotes.
src/plone/api/tests/test_content.py:519:13: Q000 Remove bad quotes.
ERROR: /home/jenkins/workspace/package-plone.api/src/plone/api/tests/test_doctests.py Imports are incorrectly sorted.
src/plone/api/tests/test_doctests.py:0:1: I001 found unsorted imports
src/plone/api/tests/test_doctests.py:23:80: E501 line too long (114 > 79 characters)
src/plone/api/tests/test_doctests.py:27:80: E501 line too long (92 > 79 characters)
src/plone/api/tests/test_doctests.py:57:80: E501 line too long (86 > 79 characters)
src/plone/api/tests/test_doctests.py:94:13: T001 print statement found.
src/plone/api/tests/test_doctests.py:94:45: S001 found %s formatter
src/plone/api/tests/test_group.py:190:80: E501 line too long (84 > 79 characters)
src/plone/api/tests/test_group.py:191:80: E501 line too long (85 > 79 characters)
src/plone/api/tests/test_group.py:333:80: E501 line too long (81 > 79 characters)
src/plone/api/tests/test_group.py:335:80: E501 line too long (83 > 79 characters)
src/plone/api/tests/test_group.py:338:80: E501 line too long (82 > 79 characters)
src/plone/api/tests/test_group.py:339:80: E501 line too long (86 > 79 characters)
src/plone/api/tests/test_group.py:340:80: E501 line too long (82 > 79 characters)
src/plone/api/tests/test_group.py:341:80: E501 line too long (88 > 79 characters)
src/plone/api/tests/test_group.py:342:80: E501 line too long (84 > 79 characters)
src/plone/api/tests/test_group.py:345:80: E501 line too long (86 > 79 characters)
src/plone/api/tests/test_group.py:346:80: E501 line too long (82 > 79 characters)
src/plone/api/tests/test_group.py:347:80: E501 line too long (88 > 79 characters)
src/plone/api/tests/test_group.py:348:80: E501 line too long (84 > 79 characters)
src/plone/api/tests/test_group.py:356:80: E501 line too long (105 > 79 characters)
src/plone/api/tests/test_group.py:357:80: E501 line too long (113 > 79 characters)
src/plone/api/tests/test_group.py:358:80: E501 line too long (94 > 79 characters)
src/plone/api/tests/test_group.py:360:80: E501 line too long (85 > 79 characters)
src/plone/api/tests/test_group.py:361:80: E501 line too long (87 > 79 characters)
src/plone/api/tests/test_group.py:363:80: E501 line too long (89 > 79 characters)
src/plone/api/tests/test_group.py:365:80: E501 line too long (92 > 79 characters)
src/plone/api/tests/test_group.py:366:80: E501 line too long (82 > 79 characters)
src/plone/api/tests/test_group.py:367:80: E501 line too long (94 > 79 characters)
src/plone/api/tests/test_group.py:368:80: E501 line too long (84 > 79 characters)
src/plone/api/tests/test_group.py:370:80: E501 line too long (83 > 79 characters)
src/plone/api/tests/test_group.py:371:80: E501 line too long (90 > 79 characters)
src/plone/api/tests/test_group.py:372:80: E501 line too long (80 > 79 characters)
src/plone/api/tests/test_group.py:373:80: E501 line too long (92 > 79 characters)
src/plone/api/tests/test_group.py:374:80: E501 line too long (82 > 79 characters)
src/plone/api/tests/test_group.py:377:80: E501 line too long (92 > 79 characters)
src/plone/api/tests/test_group.py:378:80: E501 line too long (82 > 79 characters)
src/plone/api/tests/test_group.py:379:80: E501 line too long (94 > 79 characters)
src/plone/api/tests/test_group.py:380:80: E501 line too long (84 > 79 characters)
ERROR: /home/jenkins/workspace/package-plone.api/src/plone/api/tests/test_portal.py Imports are incorrectly sorted.
src/plone/api/tests/test_portal.py:0:1: I001 found unsorted imports
src/plone/api/tests/test_portal.py:37:16: P002 found "hasattr", consider replacing it
src/plone/api/tests/test_portal.py:75:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:76:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:77:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:78:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:79:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:80:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:81:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:82:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:83:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:84:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:85:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:86:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:87:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:88:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:89:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:90:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:91:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:92:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:93:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:94:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:95:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:96:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:97:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:98:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:99:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:100:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:101:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:102:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:103:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:104:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:105:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:106:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:107:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:108:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:109:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:110:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:111:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:112:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:113:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:114:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:115:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:116:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:117:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:118:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:119:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:120:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:121:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:147:18: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:159:18: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:168:23: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:169:20: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:170:21: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:184:23: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:185:21: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:202:23: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:203:20: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:204:21: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:219:23: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:220:21: Q000 Remove bad quotes.
src/plone/api/tests/test_user.py:46:14: D001 found assertEquals replace it with assertEqual
src/plone/api/tests/test_user.py:60:14: D001 found assertEquals replace it with assertEqual
src/plone/api/tests/test_user.py:82:14: D001 found assertEquals replace it with assertEqual
src/plone/api/tests/test_user.py:92:14: D001 found assertEquals replace it with assertEqual
src/plone/api/tests/test_user.py:102:14: D001 found assertEquals replace it with assertEqual
src/plone/api/tests/test_user.py:115:14: D001 found assertEquals replace it with assertEqual
src/plone/api/tests/test_user.py:128:14: D001 found assertEquals replace it with assertEqual
src/plone/api/tests/test_user.py:262:80: E501 line too long (85 > 79 characters)
src/plone/api/tests/test_user.py:407:80: E501 line too long (81 > 79 characters)
src/plone/api/tests/test_user.py:409:80: E501 line too long (83 > 79 characters)
src/plone/api/tests/test_user.py:412:80: E501 line too long (82 > 79 characters)
src/plone/api/tests/test_user.py:413:80: E501 line too long (86 > 79 characters)
src/plone/api/tests/test_user.py:415:80: E501 line too long (88 > 79 characters)
src/plone/api/tests/test_user.py:416:80: E501 line too long (81 > 79 characters)
src/plone/api/tests/test_user.py:419:80: E501 line too long (86 > 79 characters)
src/plone/api/tests/test_user.py:421:80: E501 line too long (88 > 79 characters)
src/plone/api/tests/test_user.py:422:80: E501 line too long (81 > 79 characters)
src/plone/api/tests/test_user.py:447:80: E501 line too long (81 > 79 characters)
src/plone/api/tests/test_user.py:449:80: E501 line too long (83 > 79 characters)
src/plone/api/tests/test_user.py:451:80: E501 line too long (86 > 79 characters)
src/plone/api/tests/test_user.py:453:80: E501 line too long (88 > 79 characters)
src/plone/api/tests/test_user.py:454:80: E501 line too long (81 > 79 characters)
src/plone/api/tests/test_user.py:457:80: E501 line too long (84 > 79 characters)
src/plone/api/tests/test_user.py:459:80: E501 line too long (86 > 79 characters)
src/plone/api/tests/test_user.py:463:80: E501 line too long (86 > 79 characters)
```
You can run that yourself using buildout.coredev ``experimental/qa.cfg`` config file.


this class gets instantiated for every event, see `public Event(T data)` in Event


@cillianderoiste Jenkins CI reporting about code analysis
See the full report here: http://jenkins.plone.org/job/package-plone.api/2//violations
```
src/plone/__init__.py:0:1: C101 Coding magic comment not found
ERROR: /home/jenkins/workspace/package-plone.api/src/plone/api/__init__.py Imports are incorrectly sorted.
ERROR: /home/jenkins/workspace/package-plone.api/src/plone/api/content.py Imports are incorrectly sorted.
src/plone/api/content.py:0:1: I001 found unsorted imports
src/plone/api/content.py:26:41: Q000 Remove bad quotes.
src/plone/api/content.py:28:41: Q000 Remove bad quotes.
src/plone/api/content.py:74:34: F812 list comprehension redefines 'type' from line 26
src/plone/api/content.py:80:13: Q000 Remove bad quotes.
src/plone/api/content.py:81:13: Q000 Remove bad quotes.
src/plone/api/content.py:295:13: Q000 Remove bad quotes.
src/plone/api/content.py:296:13: Q000 Remove bad quotes.
src/plone/api/content.py:324:5: B901 blind except: statement
src/plone/api/content.py:336:13: Q000 Remove bad quotes.
src/plone/api/content.py:337:13: Q000 Remove bad quotes.
src/plone/api/env.py:0:1: C101 Coding magic comment not found
ERROR: /home/jenkins/workspace/package-plone.api/src/plone/api/portal.py Imports are incorrectly sorted.
src/plone/api/portal.py:0:1: I001 found unsorted imports
src/plone/api/portal.py:51:9: Q000 Remove bad quotes.
src/plone/api/portal.py:52:9: Q000 Remove bad quotes.
src/plone/api/portal.py:53:9: Q000 Remove bad quotes.
src/plone/api/portal.py:99:13: Q000 Remove bad quotes.
src/plone/api/portal.py:100:13: Q000 Remove bad quotes.
src/plone/api/portal.py:223:8: E713 test for membership should be 'not in'
src/plone/api/portal.py:229:13: Q000 Remove bad quotes.
src/plone/api/portal.py:230:13: Q000 Remove bad quotes.
src/plone/api/user.py:67:13: Q000 Remove bad quotes.
src/plone/api/user.py:68:13: Q000 Remove bad quotes.
ERROR: /home/jenkins/workspace/package-plone.api/src/plone/api/validation.py Imports are incorrectly sorted.
src/plone/api/validation.py:0:1: I001 found unsorted imports
src/plone/api/validation.py:19:13: Q000 Remove bad quotes.
src/plone/api/validation.py:20:13: Q000 Remove bad quotes.
src/plone/api/validation.py:21:32: Q000 Remove bad quotes.
src/plone/api/validation.py:65:21: Q000 Remove bad quotes.
src/plone/api/validation.py:66:25: Q000 Remove bad quotes.
src/plone/api/validation.py:95:21: Q000 Remove bad quotes.
src/plone/api/validation.py:96:25: Q000 Remove bad quotes.
src/plone/api/validation.py:106:44: Q000 Remove bad quotes.
src/plone/api/validation.py:128:21: Q000 Remove bad quotes.
src/plone/api/validation.py:159:21: Q000 Remove bad quotes.
src/plone/api/validation.py:160:21: Q000 Remove bad quotes.
src/plone/api/validation.py:160:45: Q000 Remove bad quotes.
src/plone/api/tests/base.py:43:28: Q000 Remove bad quotes.
src/plone/api/tests/base.py:45:28: Q000 Remove bad quotes.
ERROR: /home/jenkins/workspace/package-plone.api/src/plone/api/tests/test_content.py Imports are incorrectly sorted.
src/plone/api/tests/test_content.py:0:1: I001 found unsorted imports
src/plone/api/tests/test_content.py:136:9: Q000 Remove bad quotes.
src/plone/api/tests/test_content.py:482:13: Q000 Remove bad quotes.
src/plone/api/tests/test_content.py:483:13: Q000 Remove bad quotes.
src/plone/api/tests/test_content.py:484:13: Q000 Remove bad quotes.
src/plone/api/tests/test_content.py:590:17: Q000 Remove bad quotes.
src/plone/api/tests/test_content.py:599:13: Q000 Remove bad quotes.
src/plone/api/tests/test_content.py:600:13: Q000 Remove bad quotes.
src/plone/api/tests/test_content.py:601:13: Q000 Remove bad quotes.
src/plone/api/tests/test_content.py:602:13: Q000 Remove bad quotes.
src/plone/api/tests/test_content.py:603:13: Q000 Remove bad quotes.
src/plone/api/tests/test_content.py:604:13: Q000 Remove bad quotes.
src/plone/api/tests/test_content.py:605:13: Q000 Remove bad quotes.
src/plone/api/tests/test_content.py:606:13: Q000 Remove bad quotes.
src/plone/api/tests/test_content.py:607:13: Q000 Remove bad quotes.
src/plone/api/tests/test_content.py:608:13: Q000 Remove bad quotes.
src/plone/api/tests/test_content.py:609:13: Q000 Remove bad quotes.
src/plone/api/tests/test_content.py:610:13: Q000 Remove bad quotes.
src/plone/api/tests/test_content.py:611:13: Q000 Remove bad quotes.
src/plone/api/tests/test_content.py:612:13: Q000 Remove bad quotes.
ERROR: /home/jenkins/workspace/package-plone.api/src/plone/api/tests/test_doctests.py Imports are incorrectly sorted.
src/plone/api/tests/test_doctests.py:0:1: I001 found unsorted imports
src/plone/api/tests/test_doctests.py:108:13: T001 print statement found.
ERROR: /home/jenkins/workspace/package-plone.api/src/plone/api/tests/test_env.py Imports are incorrectly sorted.
src/plone/api/tests/test_env.py:0:1: I001 found unsorted imports
src/plone/api/tests/test_env.py:29:14: D001 found declarePublic replace it with AccessControl.ClassSecurityInfo.public
src/plone/api/tests/test_env.py:30:14: D001 found declareProtected replace it with AccessControl.ClassSecurityInfo.protected
src/plone/api/tests/test_env.py:31:14: D001 found declareProtected replace it with AccessControl.ClassSecurityInfo.protected
src/plone/api/tests/test_env.py:32:14: D001 found declareProtected replace it with AccessControl.ClassSecurityInfo.protected
src/plone/api/tests/test_env.py:33:14: D001 found declarePrivate replace it with AccessControl.ClassSecurityInfo.private
src/plone/api/tests/test_portal.py:36:16: P002 found "hasattr", consider replacing it
src/plone/api/tests/test_portal.py:97:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:98:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:99:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:100:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:101:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:102:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:103:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:104:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:105:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:106:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:107:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:108:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:109:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:110:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:111:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:112:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:113:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:114:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:115:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:116:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:117:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:118:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:119:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:120:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:121:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:122:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:123:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:124:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:125:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:126:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:127:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:157:18: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:169:18: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:178:23: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:179:20: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:180:21: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:194:23: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:195:21: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:211:23: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:212:20: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:213:21: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:227:23: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:228:21: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:346:17: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:353:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:354:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:355:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:356:13: Q000 Remove bad quotes.
ERROR: /home/jenkins/workspace/package-plone.api/src/plone/api/tests/test_user.py Imports are incorrectly sorted.
src/plone/api/tests/test_user.py:0:1: I001 found unsorted imports
ERROR: /home/jenkins/workspace/package-plone.api/src/plone/api/tests/test_validation.py Imports are incorrectly sorted.
src/plone/api/tests/test_validation.py:0:1: I001 found unsorted imports
src/plone/api/tests/test_validation.py:37:14: D001 found assertEquals replace it with assertEqual
src/plone/api/tests/test_validation.py:40:14: D001 found assertEquals replace it with assertEqual
src/plone/api/tests/test_validation.py:61:14: D001 found assertEquals replace it with assertEqual
src/plone/api/tests/test_validation.py:68:14: D001 found assertEquals replace it with assertEqual
src/plone/api/tests/test_validation.py:91:14: D001 found assertEquals replace it with assertEqual
src/plone/api/tests/test_validation.py:92:14: D001 found assertEquals replace it with assertEqual
src/plone/api/tests/test_validation.py:99:14: D001 found assertEquals replace it with assertEqual
src/plone/api/tests/test_validation.py:100:14: D001 found assertEquals replace it with assertEqual
src/plone/api/tests/test_validation.py:101:14: D001 found assertEquals replace it with assertEqual
src/plone/api/tests/test_validation.py:124:14: D001 found assertEquals replace it with assertEqual
src/plone/api/tests/test_validation.py:125:14: D001 found assertEquals replace it with assertEqual
src/plone/api/tests/test_validation.py:130:14: D001 found assertEquals replace it with assertEqual
src/plone/api/tests/test_validation.py:131:14: D001 found assertEquals replace it with assertEqual
src/plone/api/tests/test_validation.py:132:14: D001 found assertEquals replace it with assertEqual
src/plone/api/tests/test_validation.py:138:49: Q000 Remove bad quotes.
src/plone/api/tests/test_validation.py:174:28: Q000 Remove bad quotes.
src/plone/api/tests/test_validation.py:180:30: Q000 Remove bad quotes.
```
You can run that yourself using buildout.coredev ``experimental/qa.cfg`` config file.


랜덤으로 restricted가 attribute로 있는 엘리먼트들을 사라지게 하는 함수


@zupo Jenkins CI reporting about code analysis
See the full report here: http://jenkins.plone.org/job/package-plone.api/3//violations
```
src/plone/__init__.py:0:1: C101 Coding magic comment not found
ERROR: /home/jenkins/workspace/package-plone.api@2/src/plone/api/__init__.py Imports are incorrectly sorted.
src/plone/api/content.py:78:13: Q000 Remove bad quotes.
src/plone/api/content.py:79:13: Q000 Remove bad quotes.
src/plone/api/content.py:294:13: Q000 Remove bad quotes.
src/plone/api/content.py:295:13: Q000 Remove bad quotes.
src/plone/api/content.py:323:5: B901 blind except: statement
src/plone/api/content.py:335:13: Q000 Remove bad quotes.
src/plone/api/content.py:336:13: Q000 Remove bad quotes.
ERROR: /home/jenkins/workspace/package-plone.api@2/src/plone/api/env.py Imports are incorrectly sorted.
src/plone/api/env.py:0:1: C101 Coding magic comment not found
src/plone/api/env.py:0:1: I001 found unsorted imports
ERROR: /home/jenkins/workspace/package-plone.api@2/src/plone/api/portal.py Imports are incorrectly sorted.
src/plone/api/portal.py:0:1: I001 found unsorted imports
src/plone/api/portal.py:51:9: Q000 Remove bad quotes.
src/plone/api/portal.py:52:9: Q000 Remove bad quotes.
src/plone/api/portal.py:53:9: Q000 Remove bad quotes.
src/plone/api/portal.py:99:13: Q000 Remove bad quotes.
src/plone/api/portal.py:100:13: Q000 Remove bad quotes.
src/plone/api/portal.py:223:8: E713 test for membership should be 'not in'
src/plone/api/portal.py:229:13: Q000 Remove bad quotes.
src/plone/api/portal.py:230:13: Q000 Remove bad quotes.
src/plone/api/user.py:65:13: Q000 Remove bad quotes.
src/plone/api/user.py:66:13: Q000 Remove bad quotes.
ERROR: /home/jenkins/workspace/package-plone.api@2/src/plone/api/validation.py Imports are incorrectly sorted.
src/plone/api/validation.py:0:1: I001 found unsorted imports
src/plone/api/validation.py:19:13: Q000 Remove bad quotes.
src/plone/api/validation.py:20:13: Q000 Remove bad quotes.
src/plone/api/validation.py:21:32: Q000 Remove bad quotes.
src/plone/api/validation.py:65:21: Q000 Remove bad quotes.
src/plone/api/validation.py:66:25: Q000 Remove bad quotes.
src/plone/api/validation.py:95:21: Q000 Remove bad quotes.
src/plone/api/validation.py:96:25: Q000 Remove bad quotes.
src/plone/api/validation.py:126:21: Q000 Remove bad quotes.
src/plone/api/validation.py:127:21: Q000 Remove bad quotes.
src/plone/api/validation.py:127:45: Q000 Remove bad quotes.
src/plone/api/tests/base.py:43:28: Q000 Remove bad quotes.
src/plone/api/tests/base.py:45:28: Q000 Remove bad quotes.
ERROR: /home/jenkins/workspace/package-plone.api@2/src/plone/api/tests/test_content.py Imports are incorrectly sorted.
src/plone/api/tests/test_content.py:0:1: I001 found unsorted imports
src/plone/api/tests/test_content.py:135:9: Q000 Remove bad quotes.
src/plone/api/tests/test_content.py:487:13: Q000 Remove bad quotes.
src/plone/api/tests/test_content.py:488:13: Q000 Remove bad quotes.
src/plone/api/tests/test_content.py:489:13: Q000 Remove bad quotes.
src/plone/api/tests/test_content.py:595:17: Q000 Remove bad quotes.
src/plone/api/tests/test_content.py:604:13: Q000 Remove bad quotes.
src/plone/api/tests/test_content.py:605:13: Q000 Remove bad quotes.
src/plone/api/tests/test_content.py:606:13: Q000 Remove bad quotes.
src/plone/api/tests/test_content.py:607:13: Q000 Remove bad quotes.
src/plone/api/tests/test_content.py:608:13: Q000 Remove bad quotes.
src/plone/api/tests/test_content.py:609:13: Q000 Remove bad quotes.
src/plone/api/tests/test_content.py:610:13: Q000 Remove bad quotes.
src/plone/api/tests/test_content.py:611:13: Q000 Remove bad quotes.
src/plone/api/tests/test_content.py:612:13: Q000 Remove bad quotes.
src/plone/api/tests/test_content.py:613:13: Q000 Remove bad quotes.
src/plone/api/tests/test_content.py:614:13: Q000 Remove bad quotes.
src/plone/api/tests/test_content.py:615:13: Q000 Remove bad quotes.
src/plone/api/tests/test_content.py:616:13: Q000 Remove bad quotes.
src/plone/api/tests/test_content.py:617:13: Q000 Remove bad quotes.
ERROR: /home/jenkins/workspace/package-plone.api@2/src/plone/api/tests/test_doctests.py Imports are incorrectly sorted.
src/plone/api/tests/test_doctests.py:0:1: I001 found unsorted imports
src/plone/api/tests/test_doctests.py:108:13: T001 print statement found.
ERROR: /home/jenkins/workspace/package-plone.api@2/src/plone/api/tests/test_env.py Imports are incorrectly sorted.
src/plone/api/tests/test_env.py:0:1: I001 found unsorted imports
src/plone/api/tests/test_env.py:29:14: D001 found declarePublic replace it with AccessControl.ClassSecurityInfo.public
src/plone/api/tests/test_env.py:30:14: D001 found declareProtected replace it with AccessControl.ClassSecurityInfo.protected
src/plone/api/tests/test_env.py:31:14: D001 found declareProtected replace it with AccessControl.ClassSecurityInfo.protected
src/plone/api/tests/test_env.py:32:14: D001 found declareProtected replace it with AccessControl.ClassSecurityInfo.protected
src/plone/api/tests/test_env.py:33:14: D001 found declarePrivate replace it with AccessControl.ClassSecurityInfo.private
src/plone/api/tests/test_portal.py:36:16: P002 found "hasattr", consider replacing it
src/plone/api/tests/test_portal.py:61:41: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:61:57: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:97:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:98:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:99:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:100:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:101:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:102:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:103:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:104:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:105:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:106:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:107:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:108:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:109:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:110:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:111:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:112:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:113:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:114:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:115:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:116:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:117:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:118:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:119:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:120:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:121:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:122:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:123:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:124:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:125:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:126:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:127:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:157:18: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:169:18: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:178:23: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:179:20: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:180:21: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:194:23: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:195:21: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:211:23: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:212:20: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:213:21: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:227:23: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:228:21: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:375:17: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:382:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:383:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:384:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:385:13: Q000 Remove bad quotes.
ERROR: /home/jenkins/workspace/package-plone.api@2/src/plone/api/tests/test_user.py Imports are incorrectly sorted.
src/plone/api/tests/test_user.py:0:1: I001 found unsorted imports
src/plone/api/tests/test_user.py:524:20: Q000 Remove bad quotes.
src/plone/api/tests/test_validation.py:37:14: D001 found assertEquals replace it with assertEqual
src/plone/api/tests/test_validation.py:40:14: D001 found assertEquals replace it with assertEqual
src/plone/api/tests/test_validation.py:63:14: D001 found assertEquals replace it with assertEqual
src/plone/api/tests/test_validation.py:68:14: D001 found assertEquals replace it with assertEqual
src/plone/api/tests/test_validation.py:72:14: D001 found assertEquals replace it with assertEqual
src/plone/api/tests/test_validation.py:77:14: D001 found assertEquals replace it with assertEqual
src/plone/api/tests/test_validation.py:82:14: D001 found assertEquals replace it with assertEqual
src/plone/api/tests/test_validation.py:89:14: D001 found assertEquals replace it with assertEqual
src/plone/api/tests/test_validation.py:96:14: D001 found assertEquals replace it with assertEqual
src/plone/api/tests/test_validation.py:119:14: D001 found assertEquals replace it with assertEqual
src/plone/api/tests/test_validation.py:120:14: D001 found assertEquals replace it with assertEqual
src/plone/api/tests/test_validation.py:127:14: D001 found assertEquals replace it with assertEqual
src/plone/api/tests/test_validation.py:128:14: D001 found assertEquals replace it with assertEqual
src/plone/api/tests/test_validation.py:129:14: D001 found assertEquals replace it with assertEqual
src/plone/api/tests/test_validation.py:152:14: D001 found assertEquals replace it with assertEqual
src/plone/api/tests/test_validation.py:153:14: D001 found assertEquals replace it with assertEqual
src/plone/api/tests/test_validation.py:158:14: D001 found assertEquals replace it with assertEqual
src/plone/api/tests/test_validation.py:159:14: D001 found assertEquals replace it with assertEqual
src/plone/api/tests/test_validation.py:160:14: D001 found assertEquals replace it with assertEqual
```
You can run that yourself using buildout.coredev ``experimental/qa.cfg`` config file.


@rodfersou Jenkins CI reporting about code analysis
See the full report here: http://jenkins.plone.org/job/package-plone.api/4//violations
```
src/plone/__init__.py:0:1: C101 Coding magic comment not found
ERROR: /home/jenkins/workspace/package-plone.api/src/plone/api/__init__.py Imports are incorrectly sorted.
ERROR: /home/jenkins/workspace/package-plone.api/src/plone/api/content.py Imports are incorrectly sorted.
src/plone/api/content.py:0:1: I001 found unsorted imports
src/plone/api/content.py:77:36: S001 found %s formatter
src/plone/api/content.py:82:13: Q000 Remove bad quotes.
src/plone/api/content.py:83:13: Q000 Remove bad quotes.
src/plone/api/content.py:292:13: Q000 Remove bad quotes.
src/plone/api/content.py:293:13: Q000 Remove bad quotes.
src/plone/api/content.py:315:5: B901 blind except: statement
src/plone/api/content.py:327:13: Q000 Remove bad quotes.
src/plone/api/content.py:328:13: Q000 Remove bad quotes.
ERROR: /home/jenkins/workspace/package-plone.api/src/plone/api/env.py Imports are incorrectly sorted.
src/plone/api/env.py:0:1: C101 Coding magic comment not found
src/plone/api/env.py:0:1: I001 found unsorted imports
ERROR: /home/jenkins/workspace/package-plone.api/src/plone/api/portal.py Imports are incorrectly sorted.
src/plone/api/portal.py:0:1: I001 found unsorted imports
src/plone/api/portal.py:52:9: Q000 Remove bad quotes.
src/plone/api/portal.py:53:9: Q000 Remove bad quotes.
src/plone/api/portal.py:54:9: Q000 Remove bad quotes.
src/plone/api/portal.py:100:13: Q000 Remove bad quotes.
src/plone/api/portal.py:101:13: Q000 Remove bad quotes.
src/plone/api/portal.py:224:8: E713 test for membership should be 'not in'
src/plone/api/portal.py:230:13: Q000 Remove bad quotes.
src/plone/api/portal.py:231:13: Q000 Remove bad quotes.
src/plone/api/user.py:65:13: Q000 Remove bad quotes.
src/plone/api/user.py:66:13: Q000 Remove bad quotes.
src/plone/api/validation.py:20:13: Q000 Remove bad quotes.
src/plone/api/validation.py:21:13: Q000 Remove bad quotes.
src/plone/api/validation.py:22:32: Q000 Remove bad quotes.
src/plone/api/validation.py:66:21: Q000 Remove bad quotes.
src/plone/api/validation.py:67:25: Q000 Remove bad quotes.
src/plone/api/validation.py:96:21: Q000 Remove bad quotes.
src/plone/api/validation.py:97:25: Q000 Remove bad quotes.
src/plone/api/validation.py:127:21: Q000 Remove bad quotes.
src/plone/api/validation.py:128:21: Q000 Remove bad quotes.
src/plone/api/validation.py:128:45: Q000 Remove bad quotes.
ERROR: /home/jenkins/workspace/package-plone.api/src/plone/api/tests/base.py Imports are incorrectly sorted.
src/plone/api/tests/base.py:0:1: I001 found unsorted imports
src/plone/api/tests/base.py:43:28: Q000 Remove bad quotes.
src/plone/api/tests/base.py:45:28: Q000 Remove bad quotes.
ERROR: /home/jenkins/workspace/package-plone.api/src/plone/api/tests/test_content.py Imports are incorrectly sorted.
src/plone/api/tests/test_content.py:0:1: I001 found unsorted imports
src/plone/api/tests/test_content.py:135:9: Q000 Remove bad quotes.
src/plone/api/tests/test_content.py:487:13: Q000 Remove bad quotes.
src/plone/api/tests/test_content.py:488:13: Q000 Remove bad quotes.
src/plone/api/tests/test_content.py:489:13: Q000 Remove bad quotes.
src/plone/api/tests/test_content.py:594:17: Q000 Remove bad quotes.
src/plone/api/tests/test_content.py:603:13: Q000 Remove bad quotes.
src/plone/api/tests/test_content.py:604:13: Q000 Remove bad quotes.
src/plone/api/tests/test_content.py:605:13: Q000 Remove bad quotes.
src/plone/api/tests/test_content.py:606:13: Q000 Remove bad quotes.
src/plone/api/tests/test_content.py:607:13: Q000 Remove bad quotes.
src/plone/api/tests/test_content.py:608:13: Q000 Remove bad quotes.
src/plone/api/tests/test_content.py:609:13: Q000 Remove bad quotes.
src/plone/api/tests/test_content.py:610:13: Q000 Remove bad quotes.
src/plone/api/tests/test_content.py:611:13: Q000 Remove bad quotes.
src/plone/api/tests/test_content.py:612:13: Q000 Remove bad quotes.
src/plone/api/tests/test_content.py:613:13: Q000 Remove bad quotes.
src/plone/api/tests/test_content.py:614:13: Q000 Remove bad quotes.
src/plone/api/tests/test_content.py:615:13: Q000 Remove bad quotes.
src/plone/api/tests/test_content.py:616:13: Q000 Remove bad quotes.
ERROR: /home/jenkins/workspace/package-plone.api/src/plone/api/tests/test_doctests.py Imports are incorrectly sorted.
src/plone/api/tests/test_doctests.py:0:1: I001 found unsorted imports
src/plone/api/tests/test_doctests.py:108:13: T001 print statement found.
src/plone/api/tests/test_env.py:30:14: D001 found declarePublic replace it with AccessControl.ClassSecurityInfo.public
src/plone/api/tests/test_env.py:31:14: D001 found declareProtected replace it with AccessControl.ClassSecurityInfo.protected
src/plone/api/tests/test_env.py:32:14: D001 found declareProtected replace it with AccessControl.ClassSecurityInfo.protected
src/plone/api/tests/test_env.py:33:14: D001 found declareProtected replace it with AccessControl.ClassSecurityInfo.protected
src/plone/api/tests/test_env.py:34:14: D001 found declarePrivate replace it with AccessControl.ClassSecurityInfo.private
ERROR: /home/jenkins/workspace/package-plone.api/src/plone/api/tests/test_group.py Imports are incorrectly sorted.
src/plone/api/tests/test_group.py:0:1: I001 found unsorted imports
ERROR: /home/jenkins/workspace/package-plone.api/src/plone/api/tests/test_portal.py Imports are incorrectly sorted.
src/plone/api/tests/test_portal.py:0:1: I001 found unsorted imports
src/plone/api/tests/test_portal.py:36:16: P002 found "hasattr", consider replacing it
src/plone/api/tests/test_portal.py:61:41: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:61:57: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:97:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:98:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:99:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:100:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:101:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:102:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:103:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:104:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:105:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:106:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:107:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:108:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:109:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:110:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:111:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:112:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:113:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:114:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:115:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:116:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:117:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:118:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:119:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:120:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:121:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:122:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:123:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:124:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:125:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:126:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:127:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:157:18: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:169:18: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:178:23: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:179:20: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:180:21: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:194:23: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:195:21: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:211:23: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:212:20: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:213:21: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:227:23: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:228:21: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:375:17: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:382:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:383:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:384:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:385:13: Q000 Remove bad quotes.
ERROR: /home/jenkins/workspace/package-plone.api/src/plone/api/tests/test_user.py Imports are incorrectly sorted.
src/plone/api/tests/test_user.py:0:1: I001 found unsorted imports
src/plone/api/tests/test_user.py:524:20: Q000 Remove bad quotes.
src/plone/api/tests/test_validation.py:37:14: D001 found assertEquals replace it with assertEqual
src/plone/api/tests/test_validation.py:40:14: D001 found assertEquals replace it with assertEqual
src/plone/api/tests/test_validation.py:63:14: D001 found assertEquals replace it with assertEqual
src/plone/api/tests/test_validation.py:68:14: D001 found assertEquals replace it with assertEqual
src/plone/api/tests/test_validation.py:72:14: D001 found assertEquals replace it with assertEqual
src/plone/api/tests/test_validation.py:77:14: D001 found assertEquals replace it with assertEqual
src/plone/api/tests/test_validation.py:82:14: D001 found assertEquals replace it with assertEqual
src/plone/api/tests/test_validation.py:89:14: D001 found assertEquals replace it with assertEqual
src/plone/api/tests/test_validation.py:96:14: D001 found assertEquals replace it with assertEqual
src/plone/api/tests/test_validation.py:119:14: D001 found assertEquals replace it with assertEqual
src/plone/api/tests/test_validation.py:120:14: D001 found assertEquals replace it with assertEqual
src/plone/api/tests/test_validation.py:127:14: D001 found assertEquals replace it with assertEqual
src/plone/api/tests/test_validation.py:128:14: D001 found assertEquals replace it with assertEqual
src/plone/api/tests/test_validation.py:129:14: D001 found assertEquals replace it with assertEqual
src/plone/api/tests/test_validation.py:152:14: D001 found assertEquals replace it with assertEqual
src/plone/api/tests/test_validation.py:153:14: D001 found assertEquals replace it with assertEqual
src/plone/api/tests/test_validation.py:158:14: D001 found assertEquals replace it with assertEqual
src/plone/api/tests/test_validation.py:159:14: D001 found assertEquals replace it with assertEqual
src/plone/api/tests/test_validation.py:160:14: D001 found assertEquals replace it with assertEqual
```
You can run that yourself using buildout.coredev ``experimental/qa.cfg`` config file.


Any luck?


@cewing Jenkins CI reporting about code analysis
See the full report here: http://jenkins.plone.org/job/package-plone.api/5//violations
```
src/plone/__init__.py:0:1: C101 Coding magic comment not found
ERROR: /home/jenkins/workspace/package-plone.api@2/src/plone/api/__init__.py Imports are incorrectly sorted.
ERROR: /home/jenkins/workspace/package-plone.api@2/src/plone/api/content.py Imports are incorrectly sorted.
src/plone/api/content.py:0:1: I001 found unsorted imports
src/plone/api/content.py:77:36: S001 found %s formatter
src/plone/api/content.py:82:13: Q000 Remove bad quotes.
src/plone/api/content.py:83:13: Q000 Remove bad quotes.
src/plone/api/content.py:84:13: Q000 Remove bad quotes.
src/plone/api/content.py:297:13: Q000 Remove bad quotes.
src/plone/api/content.py:298:13: Q000 Remove bad quotes.
src/plone/api/content.py:320:5: B901 blind except: statement
src/plone/api/content.py:332:13: Q000 Remove bad quotes.
src/plone/api/content.py:333:13: Q000 Remove bad quotes.
ERROR: /home/jenkins/workspace/package-plone.api@2/src/plone/api/env.py Imports are incorrectly sorted.
src/plone/api/env.py:0:1: C101 Coding magic comment not found
src/plone/api/env.py:0:1: I001 found unsorted imports
ERROR: /home/jenkins/workspace/package-plone.api@2/src/plone/api/portal.py Imports are incorrectly sorted.
src/plone/api/portal.py:0:1: I001 found unsorted imports
src/plone/api/portal.py:52:9: Q000 Remove bad quotes.
src/plone/api/portal.py:53:9: Q000 Remove bad quotes.
src/plone/api/portal.py:54:9: Q000 Remove bad quotes.
src/plone/api/portal.py:100:13: Q000 Remove bad quotes.
src/plone/api/portal.py:101:13: Q000 Remove bad quotes.
src/plone/api/portal.py:224:8: E713 test for membership should be 'not in'
src/plone/api/portal.py:230:13: Q000 Remove bad quotes.
src/plone/api/portal.py:231:13: Q000 Remove bad quotes.
src/plone/api/user.py:66:13: Q000 Remove bad quotes.
src/plone/api/user.py:67:13: Q000 Remove bad quotes.
src/plone/api/validation.py:20:13: Q000 Remove bad quotes.
src/plone/api/validation.py:21:13: Q000 Remove bad quotes.
src/plone/api/validation.py:22:32: Q000 Remove bad quotes.
src/plone/api/validation.py:66:21: Q000 Remove bad quotes.
src/plone/api/validation.py:67:25: Q000 Remove bad quotes.
src/plone/api/validation.py:96:21: Q000 Remove bad quotes.
src/plone/api/validation.py:97:25: Q000 Remove bad quotes.
src/plone/api/validation.py:127:21: Q000 Remove bad quotes.
src/plone/api/validation.py:128:21: Q000 Remove bad quotes.
src/plone/api/validation.py:128:45: Q000 Remove bad quotes.
ERROR: /home/jenkins/workspace/package-plone.api@2/src/plone/api/tests/base.py Imports are incorrectly sorted.
src/plone/api/tests/base.py:0:1: I001 found unsorted imports
src/plone/api/tests/base.py:43:28: Q000 Remove bad quotes.
src/plone/api/tests/base.py:45:28: Q000 Remove bad quotes.
ERROR: /home/jenkins/workspace/package-plone.api@2/src/plone/api/tests/test_content.py Imports are incorrectly sorted.
src/plone/api/tests/test_content.py:0:1: I001 found unsorted imports
src/plone/api/tests/test_content.py:119:13: Q000 Remove bad quotes.
src/plone/api/tests/test_content.py:141:9: Q000 Remove bad quotes.
src/plone/api/tests/test_content.py:497:13: Q000 Remove bad quotes.
src/plone/api/tests/test_content.py:498:13: Q000 Remove bad quotes.
src/plone/api/tests/test_content.py:499:13: Q000 Remove bad quotes.
src/plone/api/tests/test_content.py:604:17: Q000 Remove bad quotes.
src/plone/api/tests/test_content.py:613:13: Q000 Remove bad quotes.
src/plone/api/tests/test_content.py:614:13: Q000 Remove bad quotes.
src/plone/api/tests/test_content.py:615:13: Q000 Remove bad quotes.
src/plone/api/tests/test_content.py:616:13: Q000 Remove bad quotes.
src/plone/api/tests/test_content.py:617:13: Q000 Remove bad quotes.
src/plone/api/tests/test_content.py:618:13: Q000 Remove bad quotes.
src/plone/api/tests/test_content.py:619:13: Q000 Remove bad quotes.
src/plone/api/tests/test_content.py:620:13: Q000 Remove bad quotes.
src/plone/api/tests/test_content.py:621:13: Q000 Remove bad quotes.
src/plone/api/tests/test_content.py:622:13: Q000 Remove bad quotes.
src/plone/api/tests/test_content.py:623:13: Q000 Remove bad quotes.
src/plone/api/tests/test_content.py:624:13: Q000 Remove bad quotes.
src/plone/api/tests/test_content.py:625:13: Q000 Remove bad quotes.
src/plone/api/tests/test_content.py:626:13: Q000 Remove bad quotes.
ERROR: /home/jenkins/workspace/package-plone.api@2/src/plone/api/tests/test_doctests.py Imports are incorrectly sorted.
src/plone/api/tests/test_doctests.py:0:1: I001 found unsorted imports
src/plone/api/tests/test_doctests.py:108:13: T001 print statement found.
src/plone/api/tests/test_env.py:30:14: D001 found declarePublic replace it with AccessControl.ClassSecurityInfo.public
src/plone/api/tests/test_env.py:31:14: D001 found declareProtected replace it with AccessControl.ClassSecurityInfo.protected
src/plone/api/tests/test_env.py:32:14: D001 found declareProtected replace it with AccessControl.ClassSecurityInfo.protected
src/plone/api/tests/test_env.py:33:14: D001 found declareProtected replace it with AccessControl.ClassSecurityInfo.protected
src/plone/api/tests/test_env.py:34:14: D001 found declarePrivate replace it with AccessControl.ClassSecurityInfo.private
ERROR: /home/jenkins/workspace/package-plone.api@2/src/plone/api/tests/test_group.py Imports are incorrectly sorted.
src/plone/api/tests/test_group.py:0:1: I001 found unsorted imports
src/plone/api/tests/test_group.py:112:59: Q000 Remove bad quotes.
ERROR: /home/jenkins/workspace/package-plone.api@2/src/plone/api/tests/test_portal.py Imports are incorrectly sorted.
src/plone/api/tests/test_portal.py:0:1: I001 found unsorted imports
src/plone/api/tests/test_portal.py:36:16: P002 found "hasattr", consider replacing it
src/plone/api/tests/test_portal.py:61:41: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:61:57: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:97:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:98:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:99:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:100:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:101:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:102:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:103:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:104:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:105:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:106:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:107:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:108:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:109:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:110:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:111:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:112:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:113:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:114:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:115:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:116:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:117:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:118:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:119:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:120:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:121:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:122:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:123:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:124:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:125:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:126:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:127:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:157:18: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:169:18: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:178:23: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:179:20: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:180:21: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:194:23: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:195:21: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:211:23: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:212:20: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:213:21: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:227:23: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:228:21: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:375:17: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:382:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:383:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:384:13: Q000 Remove bad quotes.
src/plone/api/tests/test_portal.py:385:13: Q000 Remove bad quotes.
ERROR: /home/jenkins/workspace/package-plone.api@2/src/plone/api/tests/test_user.py Imports are incorrectly sorted.
src/plone/api/tests/test_user.py:0:1: I001 found unsorted imports
src/plone/api/tests/test_user.py:545:20: Q000 Remove bad quotes.
src/plone/api/tests/test_validation.py:37:14: D001 found assertEquals replace it with assertEqual
src/plone/api/tests/test_validation.py:40:14: D001 found assertEquals replace it with assertEqual
src/plone/api/tests/test_validation.py:63:14: D001 found assertEquals replace it with assertEqual
src/plone/api/tests/test_validation.py:68:14: D001 found assertEquals replace it with assertEqual
src/plone/api/tests/test_validation.py:72:14: D001 found assertEquals replace it with assertEqual
src/plone/api/tests/test_validation.py:77:14: D001 found assertEquals replace it with assertEqual
src/plone/api/tests/test_validation.py:82:14: D001 found assertEquals replace it with assertEqual
src/plone/api/tests/test_validation.py:89:14: D001 found assertEquals replace it with assertEqual
src/plone/api/tests/test_validation.py:96:14: D001 found assertEquals replace it with assertEqual
src/plone/api/tests/test_validation.py:119:14: D001 found assertEquals replace it with assertEqual
src/plone/api/tests/test_validation.py:120:14: D001 found assertEquals replace it with assertEqual
src/plone/api/tests/test_validation.py:127:14: D001 found assertEquals replace it with assertEqual
src/plone/api/tests/test_validation.py:128:14: D001 found assertEquals replace it with assertEqual
src/plone/api/tests/test_validation.py:129:14: D001 found assertEquals replace it with assertEqual
src/plone/api/tests/test_validation.py:152:14: D001 found assertEquals replace it with assertEqual
src/plone/api/tests/test_validation.py:153:14: D001 found assertEquals replace it with assertEqual
src/plone/api/tests/test_validation.py:158:14: D001 found assertEquals replace it with assertEqual
src/plone/api/tests/test_validation.py:159:14: D001 found assertEquals replace it with assertEqual
src/plone/api/tests/test_validation.py:160:14: D001 found assertEquals replace it with assertEqual
```
You can run that yourself using buildout.coredev ``experimental/qa.cfg`` config file.