hunk.code_window:     Use 'Receive Products' button to immediately view this picking, it should have created a picking with 200 pieces
   -
       !python {model: purchase.order}: |
            po_id = self.search(cr, uid, [('partner_id', '=', ref('supplier_dropship'))])
            self.view_picking(cr, uid, po_id)
   -
       Send the 200 pieces.
   - 
  
hunk.labels: keep keep keep keep replace keep keep keep
hunk.after_edit:          assert len(po_id) == 1, 'There should be one picking'
  
hunk.file_path: addons/stock_dropshipping/test/dropship.yml
hunk.type: replace
file: odoo.define('web_editor.base', function (require) {
  "use strict";
  
  var core = require('web.core');
  var ajax = require('web.ajax');
  var qweb = core.qweb;
  var _t = core._t;
  
  var get_context = function (dict) {
      var html = document.documentElement;
      return _.extend({
          'lang': (html.getAttribute('lang') || '').replace('-', '_'),
      }, dict);
  };
  
  //////////////////////////////////////////////////////////////////////////////////////////////////////////
  
  var data = {
      'get_context': get_context,
      'url_translations': '/web/webclient/translations',
  };
  
  var dom_ready = $.Deferred();
  $(document).ready(function () {
      dom_ready.resolve(data);
      // fix for ie
      if($.fn.placeholder) $('input, textarea').placeholder();
  });
  data.dom_ready = dom_ready;
  
  // todo: remove and load a bundle of translated templates
  var all_ready;
  data.ready = function() {
      if (!all_ready) {
          all_ready = $.when(dom_ready, ajax.loadXML()).then(translations);
      } else if(all_ready.state() === "resolved") { // can add async template
          all_ready = $.when(dom_ready, ajax.loadXML());
      }
      return all_ready;
  };
  
  function translations() {
      function translate_node(node){
          if(node.nodeType === 3) { // TEXT_NODE
              if(node.nodeValue.match(/\S/)){
                  var space = node.nodeValue.match(/^([\s]*)([\s\S]*?)([\s]*)$/);
                  node.nodeValue = space[1] + $.trim(_t(space[2])) + space[3];
              }
          }
          else if(node.nodeType === 1 && node.hasChildNodes()) { // ELEMENT_NODE
              _.each(node.childNodes, translate_node);
          }
      }
      return ajax.jsonRpc(data.url_translations, 'call', {
              'mods': ['web_editor'],
              'lang': data.get_context().lang
          })
          .then(function(trans) {
              _t.database.set_bundle(trans);
          }).then(function () {
              var keys = _.keys(qweb.templates);
              for (var i = 0; i < keys.length; i++){
                  translate_node(qweb.templates[keys[i]]);
              }
          }).promise();
  }
  return dom_ready;
  
  });
  