Fokko commented on issue #4861: [AIRFLOW-4034] Make string formatting explicit 
by removing **locals()
URL: https://github.com/apache/airflow/pull/4861#issuecomment-473715565
 
 
   Sad CI:
   ```
   
[31m======================================================================
   45) FAIL: test_dag_run_link (tests.www.test_utils.UtilsTest)
   
----------------------------------------------------------------------
      Traceback (most recent call last):
       tests/www/test_utils.py line 200 in 
test_dag_run_link
         self.assertNotIn('<b2>', html)
      AssertionError: '<b2>' 
unexpectedly found in '<a 
href="/graph?execution_date=2019-03-15+17%3A24%3A24.358817&dag_id=%3Ca%261%3E&run_id=%3Cb2%3E"><b2></a>'
   
======================================================================
   46) FAIL: test_state_token (tests.www.test_utils.UtilsTest)
   
----------------------------------------------------------------------
      Traceback (most recent call last):
       tests/www/test_utils.py line 155 in 
test_state_token
         html,
      AssertionError: 
'&lt;script&gt;alert(1)&lt;/script&gt;' not found in '<span 
class="label" 
style="background-color:white;"><script>alert(1)</script></span>'
   
======================================================================
   47) FAIL: test_task_instance_link (tests.www.test_utils.UtilsTest)
   
----------------------------------------------------------------------
      Traceback (most recent call last):
       tests/www/test_utils.py line 175 in 
test_task_instance_link
         self.assertNotIn('<b2>', html)
      AssertionError: '<b2>' 
unexpectedly found in '\n        <span style="white-space: nowrap;">\n        
<a 
href="/task?task_id=%3Cb2%3E&execution_date=2019-03-15T17%3A24%3A24.397494&dag_id=%3Ca%261%3E"><b2></a>\n
        <a 
href="/graph?root=%3Cb2%3E&execution_date=2019-03-15T17%3A24%3A24.397494&dag_id=%3Ca%261%3E"
 title="Filter on this task and upstream">\n        <span class="glyphicon 
glyphicon-filter" style="margin-left: 0px;"\n            
aria-hidden="true"></span>\n        </a>\n        </span>\n        '
   
======================================================================
   48) FAIL: test_odd_name (tests.www.test_views.TestPoolModelView)
   
----------------------------------------------------------------------
      Traceback (most recent call last):
       tests/www/test_views.py line 269 in 
test_odd_name
         self.check_content_in_response('test-pool&lt;script&gt;', resp)
       tests/www/test_views.py line 101 in 
check_content_in_response
         self.assertIn(text, resp_html)
      AssertionError: 
'test-pool&lt;script&gt;' not found in u'\n\n\n\n\n    \n\n\n<!DOCTYPE 
html>\n<html>\n  <head>\n    <title>Airflow</title>\n\n    \n        <meta 
name="viewport" content="width=device-width, initial-scale=1.0">\n        <meta 
name="description" content="">\n        <meta name="author" content="">\n    \n 
   \n  \n        <link href="/static/appbuilder/css/bootstrap.min.css" 
rel="stylesheet">\n        <link 
href="/static/appbuilder/css/font-awesome.min.css" rel="stylesheet">\n        
\n\n         <!-- HTML5 shim, for IE6-8 support of HTML5 elements -->\n         
<!--[if lt IE 9]>\n            <script 
src="/static/appbuilder/js/html5shiv.js"></script>\n            <script 
src="/static/appbuilder/js/respond.min.js"></script>\n         <![endif]-->\n\n 
       <link href="/static/appbuilder/datepicker/bootstrap-datepicker.css" 
rel="stylesheet">\n        <link href="/static/appbuilder/select2/select2.css" 
rel="stylesheet">\n        <link 
href="/static/appbuilder/css/flags/flags16.css" rel="stylesheet">\n        
<link href="/static/appbuilder/css/ab.css" rel="stylesheet">\n    \n\n  <link 
href="/static/" rel="stylesheet">\n\n  \n    \n    <link href="/static/" 
rel="stylesheet">\n  \n\n  <link rel="icon" type="image/png" 
href="/static/pin_30.png">\n\n    \n        <script 
src="/static/appbuilder/js/jquery-latest.js"></script>\n        <script 
src="/static/appbuilder/js/ab_filters.js"></script>\n        <script 
src="/static/appbuilder/js/ab_actions.js"></script>\n    \n\n</head>\n\n<body 
>\n\n\n    <div class="modal fade" id="modal-confirm" tabindex="-1" 
role="dialog">\n    <div class="modal-dialog modal-sm">\n        <div 
class="modal-content">\n            <div class="modal-header">\n                
<h4 class="modal-title" id="myModalLabel">\n                User confirmation 
needed\n                </h4>\n            </div>\n            <div 
class="modal-body">\n                <div class="modal-text"></div>\n           
 </div>\n            <div class="modal-footer">\n                <button 
type="button" class="btn btn-default" data-dismiss="modal">Cancel</button>\n    
            <a href="#" id=\'modal-confirm-ok\' class="btn btn-danger 
danger">OK</a>\n            </div>\n        </div>\n    </div>\n</div>\n    
<div class="modal fade" id="modal-alert" tabindex="-1" role="dialog">\n    <div 
class="modal-dialog modal-sm">\n        <div class="modal-content">\n           
 <div class="modal-body">\n                <div><h4 
class="modal-text"></h4></div>\n            </div>\n            <div 
class="modal-footer">\n                <button type="button" class="btn 
btn-default" data-dismiss="modal">OK</button>\n            </div>\n        
</div>\n    </div>\n</div>\n    \n        <header class="top" role="header">\n  
      \n\n\n\n<div class="navbar navbar-inverse navbar-fixed-top 
navbar-inverse" role="navigation" style="background-color: #007A87;">\n   <div 
class="container">\n        <div class="navbar-header">\n            <button 
type="button" class="navbar-toggle" data-toggle="collapse" 
data-target=".navbar-collapse">\n                <span 
class="icon-bar"></span>\n                <span class="icon-bar"></span>\n      
          <span class="icon-bar"></span>\n            </button>\n            <a 
class="navbar-brand" rel="home" href="/" style="cursor: pointer;">\n            
  <img style="float: left; width:35px; margin-top: -7px;"\n                   
src="/static/pin_100.png"\n                   title="test">\n              
<span>\n                Airflow\n              </span>\n          </a>\n        
</div>\n        <div class="navbar-collapse collapse">\n            <ul 
class="nav navbar-nav">\n                \n\n\n<li class="dropdown"><a 
href="/home">DAGs</a></li>\n\n\n    \n        \n            <li 
class="dropdown">\n            <a class="dropdown-toggle" 
data-toggle="dropdown" href="javascript:void(0)">\n            \n               
 <i class="fa fa-cogs"></i>&nbsp;\n            \n            Security<b 
class="caret"></b></a>\n            <ul class="dropdown-menu">\n            \n  
              \n                    \n                        <li>\n    <a 
tabindex="-1" href="/users/list/">\n       \n        <i class="fa fa-fw 
fa-user"></i>&nbsp;\n    \n    List Users</a>\n</li>\n                    \n    
            \n            \n                \n                    \n            
            <li>\n    <a tabindex="-1" href="/roles/list/">\n       \n        
<i class="fa fa-fw fa-group"></i>&nbsp;\n    \n    List Roles</a>\n</li>\n      
              \n                \n            \n                \n              
      \n                        <li>\n    <a tabindex="-1" 
href="/userstatschartview/chart/">\n       \n        <i class="fa fa-fw 
fa-bar-chart-o"></i>&nbsp;\n    \n    User\'s Statistics</a>\n</li>\n           
         \n                \n            \n                \n                   
 \n                        \n                          <li 
class="divider"></li>\n                        \n                    \n         
       \n            \n                \n                    \n                 
       <li>\n    <a tabindex="-1" href="/permissions/list/">\n       \n        
<i class="fa fa-fw fa-lock"></i>&nbsp;\n    \n    Base Permissions</a>\n</li>\n 
                   \n                \n            \n                \n         
           \n                        <li>\n    <a tabindex="-1" 
href="/viewmenus/list/">\n       \n        <i class="fa fa-fw 
fa-list-alt"></i>&nbsp;\n    \n    Views/Menus</a>\n</li>\n                    
\n                \n            \n                \n                    \n      
                  <li>\n    <a tabindex="-1" href="/permissionviews/list/">\n   
    \n        <i class="fa fa-fw fa-link"></i>&nbsp;\n    \n    Permission on 
Views/Menus</a>\n</li>\n                    \n                \n            \n  
          </ul></li>\n        \n    \n\n    \n        \n            <li 
class="dropdown">\n            <a class="dropdown-toggle" 
data-toggle="dropdown" href="javascript:void(0)">\n            \n               
 <i class="fa fa-globe"></i>&nbsp;\n            \n            Browse<b 
class="caret"></b></a>\n            <ul class="dropdown-menu">\n            \n  
              \n                    \n                        <li>\n    <a 
tabindex="-1" href="/dagrun/list/">\n       \n    DAG Runs</a>\n</li>\n         
           \n                \n            \n                \n                 
   \n                        <li>\n    <a tabindex="-1" href="/job/list/">\n    
   \n    Jobs</a>\n</li>\n                    \n                \n            
\n                \n                    \n                        <li>\n    <a 
tabindex="-1" href="/log/list/">\n       \n    Logs</a>\n</li>\n                
    \n                \n            \n                \n                    \n  
                      <li>\n    <a tabindex="-1" href="/slamiss/list/">\n       
\n    SLA Misses</a>\n</li>\n                    \n                \n           
 \n                \n                    \n                        <li>\n    <a 
tabindex="-1" href="/taskinstance/list/">\n       \n    Task 
Instances</a>\n</li>\n                    \n                \n            \n    
        </ul></li>\n        \n    \n\n    \n        \n            <li 
class="dropdown">\n            <a class="dropdown-toggle" 
data-toggle="dropdown" href="javascript:void(0)">\n            \n               
 <i class="fa fa-user"></i>&nbsp;\n            \n            Admin<b 
class="caret"></b></a>\n            <ul class="dropdown-menu">\n            \n  
              \n                    \n                        <li>\n    <a 
tabindex="-1" href="/configuration">\n       \n    Configurations</a>\n</li>\n  
                  \n                \n            \n                \n          
          \n                        <li>\n    <a tabindex="-1" 
href="/connection/list/">\n       \n    Connections</a>\n</li>\n                
    \n                \n            \n                \n                    \n  
                      <li>\n    <a tabindex="-1" href="/pool/list/">\n       \n 
   Pools</a>\n</li>\n                    \n                \n            \n     
           \n                    \n                        <li>\n    <a 
tabindex="-1" href="/variable/list/">\n       \n    Variables</a>\n</li>\n      
              \n                \n            \n                \n              
      \n                        <li>\n    <a tabindex="-1" 
href="/xcom/list/">\n       \n    XComs</a>\n</li>\n                    \n      
          \n            \n            </ul></li>\n        \n    \n\n    \n      
  \n            <li class="dropdown">\n            <a class="dropdown-toggle" 
data-toggle="dropdown" href="javascript:void(0)">\n            \n               
 <i class="fa fa-cube"></i>&nbsp;\n            \n            Docs<b 
class="caret"></b></a>\n            <ul class="dropdown-menu">\n            \n  
              \n                    \n                        <li>\n    <a 
tabindex="-1" href="https://airflow.apache.org/";>\n       \n    
Documentation</a>\n</li>\n                    \n                \n            
\n                \n                    \n                        <li>\n    <a 
tabindex="-1" href="https://github.com/apache/airflow";>\n       \n    
GitHub</a>\n</li>\n                    \n                \n            \n       
     </ul></li>\n        \n    \n\n    \n        \n            <li 
class="dropdown">\n            <a class="dropdown-toggle" 
data-toggle="dropdown" href="javascript:void(0)">\n            \n               
 <i class="fa fa-th"></i>&nbsp;\n            \n            About<b 
class="caret"></b></a>\n            <ul class="dropdown-menu">\n            \n  
              \n                    \n                        <li>\n    <a 
tabindex="-1" href="/version">\n       \n    Version</a>\n</li>\n               
     \n                \n            \n            </ul></li>\n        \n    
\n\n    \n        \n            <li class="dropdown">\n            <a 
class="dropdown-toggle" data-toggle="dropdown" href="javascript:void(0)">\n     
       \n            Test Plugin<b class="caret"></b></a>\n            <ul 
class="dropdown-menu">\n            \n                \n                    \n  
                      <li>\n    <a tabindex="-1" 
href="/plugintestappbuilderbaseview/">\n       \n    Test View</a>\n</li>\n     
               \n                \n            \n            </ul></li>\n       
 \n    \n\n    \n        \n            <li class="dropdown">\n            <a 
class="dropdown-toggle" data-toggle="dropdown" href="javascript:void(0)">\n     
       \n                <i class="fa fa-th"></i>&nbsp;\n            \n         
   Search<b class="caret"></b></a>\n            <ul class="dropdown-menu">\n    
        \n                \n                    \n                        
<li>\n    <a tabindex="-1" href="https://www.google.com";>\n       \n    
Google</a>\n</li>\n                    \n                \n            \n       
     </ul></li>\n        \n    \n\n\n            </ul>\n            <ul 
class="nav navbar-nav navbar-right">\n                \n\n\n<!-- clock 
-->\n<li><a id="clock"></a></li>\n\n\n    <li class="dropdown">\n        <a 
class="dropdown-toggle" data-toggle="dropdown" href="#">\n           <span 
class="fa fa-user"></span> test test<b class="caret"></b>\n        </a>\n       
 <ul class="dropdown-menu">\n            <li><a href="/users/userinfo/"><span 
class="fa fa-fw fa-user"></span>Profile</a></li>\n            <li><a 
href="/logout/"><span class="fa fa-fw fa-sign-out"></span>Logout</a></li>\n     
   </ul>\n    </li>\n\n\n            </ul>\n        </div>\n   </div>\n</div>\n 
       </header>\n    \n\n\n    <div class="container">\n      <div 
class="row">\n          \n            \n    \n\n          \n          \n\n<div 
class="panel panel-primary">\n\t<div class="panel-heading">\n\t<h4 
class="panel-title">List Pool</h4>\n\t</div>\n\n\n    \n        \n<div 
class="panel-group" id="accordion1">\n    <div class="panel panel-default">\n   
     <div class="panel-heading">\n            <h4 class="panel-title">\n        
        <a class="accordion-toggle" data-toggle="collapse" 
data-parent="#accordion1"\n                   
href="#accordion1_href">Search</a><span class="caret"></span>\n            
</h4>\n        </div>\n        \n            <div id="accordion1_href" 
class="panel-collapse collapse">\n                \n                <div 
class="panel-body">\n                    \n            \n\n<form 
id="filter_form" class="form-search" method="get">\n\n    <div 
class="btn-group">\n        <button type="button" class="btn btn-default 
dropdown-toggle" data-toggle="dropdown">\n        Add Filter\n      <span 
class="caret"></span>\n        </button>\n        <ul class="dropdown-menu">\n  
          \n            <li><a href="javascript:void(0)" name=description 
class="filter btn" onclick="return false;">\n                Description</a>\n  
          </li>\n            \n            <li><a href="javascript:void(0)" 
name=slots class="filter btn" onclick="return false;">\n                
Slots</a>\n            </li>\n            \n            <li><a 
href="javascript:void(0)" name=pool class="filter btn" onclick="return 
false;">\n                Pool</a>\n            </li>\n            \n        
</ul>\n    </div>\n\n    <table class="table table-responsive table-hover 
filters">\n       \n    </table>\n\n\n    <button type="submit" class="btn  
btn-sm btn-primary">Search\n        <i class="fa fa-search"></i>\n    
</button>\n\n</form>\n\n<script>\n\t(function($) {\n\tvar filter = new 
AdminFilters(\n                    \'#filter_form\',\n                    
{"description": "Description", "pool": "Pool", "slots": "Slots"},\n             
       {"description": "\\u003ctextarea class=\\"form-control\\" 
id=\\"description\\" name=\\"description\\" placeholder=\\"Description\\" 
rows=\\"3\\"\\u003e\\u003c/textarea\\u003e", "pool": "\\u003cinput 
class=\\"form-control\\" id=\\"pool\\" name=\\"pool\\" placeholder=\\"Pool\\" 
type=\\"text\\" value=\\"\\"\\u003e", "slots": "\\u003cinput 
class=\\"form-control\\" id=\\"slots\\" name=\\"slots\\" 
placeholder=\\"Slots\\" type=\\"text\\" value=\\"0\\"\\u003e"},\n               
     {"description": ["Starts with", "Ends with", "Contains", "Equal to", "Not 
Starts with", "Not Ends with", "Not Contains", "Not Equal to"], "pool": 
["Starts with", "Ends with", "Contains", "Equal to", "Not Starts with", "Not 
Ends with", "Not Contains", "Not Equal to"], "slots": ["Equal to", "Greater 
than", "Smaller than", "Not Equal to"]},\n                    []\n              
  );\n\t})(jQuery);\n\t\n</script>\n        \n                </div>\n          
  </div>\n        </div>\n    </div>\n\n    \n\n    \n        <div>\n        
\n\n\n\n\n\n\n\n\n\n\n<div class="well well-sm">\n    \n        \n        \n\n  
    \n    \n    \n\n        \n  \n\n\n\n    \t\n\t\t    
\n\t\t\t\n\t\t\t&nbsp;\n    <a href="/pool/add" class="btn btn-sm btn-primary" 
data-toggle="tooltip" rel="tooltip"\n       title="Add a new record">\n        
<i class="fa fa-plus"></i>\n    </a>\n\n        \n        &nbsp;\n\n<div 
class="btn-group">\n    <button type="button" class="btn btn-default btn-sm 
dropdown-toggle" data-toggle="dropdown">\n    Actions<span 
class="caret"></span>\n    </button>\n    <ul class="dropdown-menu" 
role="menu">\n    \t\n            \n                <li>\n                    
<a href="javascript:void(0)"\n                        
class="muldelete_menu_item">\n                        <i class="fa None"></i>\n 
                       Delete\n                    </a>\n                
</li>\n        \n    </ul>\n\t\t<script 
type="text/javascript">\n\t\t$(document).ready(function() {\n\t\t\n        
\n\t\t\t\t$(\'.muldelete_menu_item\').on(\'click\', function(){\n\t\t\t\t    
return modelActions.execute_multiple(\'muldelete\',\'Are you sure you want to 
delete selected 
records?\');\n\t\t\t\t})\n\t\t\n\t\t});\n\t\t</script>\n</div>\n\n\n        
&nbsp;\n    <a href="/back" class="btn btn-sm btn-default" 
data-toggle="tooltip" rel="tooltip"\n       title="Back">\n        <i class="fa 
fa-arrow-left"></i>\n    </a>\n\n\t\t<div 
class="pull-right">\n\t\t\t<strong>Record Count:</strong> 1\n\t\t</div>\n\n    
\n</div>\n\n\n\n    \n        <div class="table-responsive">\n        <table 
class="table table-bordered table-hover">\n    \n\n    \n        <thead>\n      
  <tr>\n        \n        <th class="action_checkboxes">\n            <input 
id="check_all" class="action_check_all" name="check_all" type="checkbox">\n     
   </th>\n        \n\n        \n            <th class="col-md-1 col-lg-1 
col-sm-1" ></th>\n        \n\n        \n            \n                \n        
            \n                    <th><a 
href=/pool/list/?_oc_PoolModelView=pool&amp;_od_PoolModelView=asc>Pool\n        
            <i class="fa fa-arrows-v pull-right"></i></a></th>\n                
\n            \n        \n            \n                \n                    
\n                    <th><a 
href=/pool/list/?_oc_PoolModelView=slots&amp;_od_PoolModelView=asc>Slots\n      
              <i class="fa fa-arrows-v pull-right"></i></a></th>\n              
  \n            \n        \n            \n                <th>Used Slots</th>\n 
           \n        \n            \n                <th>Queued Slots</th>\n    
        \n        \n        </tr>\n        </thead>\n    \n\n    \n        \n   
         \n            <tr>\n                \n                <td>\n           
         <input id="54" class="action_check" name="rowid" value="54" 
type="checkbox">\n                </td>\n                \n                \n   
                 <td><center>\n                    \n    <div class="btn-group 
btn-group-xs" style="display: flex;">\n        \n        \n            \n       
     \n            \n    <a href="/pool/edit/54" class="btn btn-sm btn-default" 
data-toggle="tooltip" rel="tooltip"\n       title="Edit record">\n        <i 
class="fa fa-edit"></i>\n    </a>\n\n        \n        \n            \n    <a 
data-text="You sure you want to delete this item?" data-href="/pool/delete/54" 
class="btn btn-sm btn-default confirm" rel="tooltip"\n        title="Delete 
record" data-toggle="modal" data-target="#modal-confirm" href="#">\n        <i 
class="fa fa-eraser"></i>\n    </a>\n\n        \n    </div>\n\n                 
   </center></td>\n                \n                \n                    \n   
                 \n                        <td><a 
href=\'/taskinstance/list/?_flt_3_pool=test-pool%3Cscript%3E%3C%2Fscript%3E\'>test-pool<script></script></a></td>\n
                    \n                \n                    \n                  
  \n                        <td>777</td>\n                    \n                
\n                    \n                    \n                        <td><a 
href=\'/taskinstance/list/?_flt_3_pool=test-pool%3Cscript%3E%3C%2Fscript%3E&_flt_3_state=running\'>0</a></td>\n
                    \n                \n                    \n                  
  \n                        <td><a 
href=\'/taskinstance/list/?_flt_3_pool=test-pool%3Cscript%3E%3C%2Fscript%3E&_flt_3_state=queued\'>0</a></td>\n
                    \n                \n            </tr>\n        \n    \n\n   
 \n        </table>\n        </div>\n    \n\n    \n    \n    \n    <form 
id="action_form" action="/pool/action_post" method="POST" style="display: 
none">\n        \n        <input type="hidden" name="csrf_token" 
value="IjA0Y2Y3N2QzN2FhN2E3Y2UwMGE3OWU5Zjc2N2JkNjdmYzIzZGEwNWMi.XIvgeQ.KoYD_TUx3xCWQWuNm_04jIQDIQE"/>\n
        \n        <input type="hidden" id="action" name="action" />\n    
</form>\n    \n\n\n    <script language="javascript">\n        
$(document).ready(function() {\n            window.modelActions = new 
AdminActions();\n        });\n    </script>\n\n\n        </div>\n    
\n\n</div>\n\n\n\n      </div>\n    </div>\n\n    \n        <footer>\n        
<div class="img-rounded nav-fixed-bottom">\n            <div 
class="container">\n                <div class="row img-rounded">\n    
<hr><small>\n<div class="col-md-4">\n</div>\n<div 
class="col-md-4">\n</div>\n<div class="col-md-4">\n</div>\n</div>\n            
</div>\n        </div>\n        </footer>\n    \n\n\n\n\n\n    <script 
src="/static/appbuilder/js/bootstrap.min.js"></script>\n    <script 
src="/static/appbuilder/datepicker/bootstrap-datepicker.js"></script>\n    
<script src="/static/appbuilder/select2/select2.js"></script>\n    <script 
src="/static/appbuilder/js/ab.js"></script>\n\n<script 
type="text/javascript">\n  // below variables are used in base.js\n  var 
hostName = \'90ef37eeab2f\';\n  var csrfToken = 
\'IjA0Y2Y3N2QzN2FhN2E3Y2UwMGE3OWU5Zjc2N2JkNjdmYzIzZGEwNWMi.XIvgeQ.KoYD_TUx3xCWQWuNm_04jIQDIQE\';\n</script>\n<script
 src="/static/" type="text/javascript"></script>\n\n\n\n\n\n\n\n\n  
</body>\n</html>'
   ```

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


With regards,
Apache Git Services

Reply via email to