docs: def _x_open(self, virtual_host, capabilities='', insist=False):
          """
          open connection to virtual host
  
          This method opens a connection to a virtual host, which is a
          collection of resources, and acts to separate multiple
          application domains within a server.
  
          RULE:
  
              The client MUST open the context before doing any work on
              the connection.
  
          PARAMETERS:
              virtual_host: shortstr
  
                  virtual host name
  
                  The name of the virtual host to work with.
  
                  RULE:
  
                      If the server supports multiple virtual hosts, it
                      MUST enforce a full separation of exchanges,
                      queues, and all associated entities per virtual
                      host. An application, connected to a specific
                      virtual host, MUST NOT be able to access resources
                      of another virtual host.
  
                  RULE:
  
                      The server SHOULD verify that the client has
                      permission to access the specified virtual host.
  
                  RULE:
  
                      The server MAY configure arbitrary limits per
                      virtual host, such as the number of each type of
                      entity that may be used, per connection and/or in
                      total.
  
              capabilities: shortstr
  
                  required capabilities
  
                  The client may specify a number of capability names,
                  delimited by spaces.  The server can use this string
                  to how to process the client's connection request.
  
              insist: boolean
  
                  insist on connecting to server
  
                  In a configuration with multiple load-sharing servers,
                  the server may respond to a Connection.Open method
                  with a Connection.Redirect. The insist option tells
                  the server that the client is insisting on a
                  connection to the specified server.
  
                  RULE:
  
                      When the client uses the insist option, the server
                      SHOULD accept the client connection unless it is
                      technically unable to do so.
  
          """
          args = AMQPWriter()
          args.write_shortstr(virtual_host)
          args.write_shortstr(capabilities)
          args.write_bit(insist)
          self._send_method((10, 40), args)
          return self.wait(allowed_methods=[
                            (10, 41),    # Connection.open_ok
                            (10, 50),    # Connection.redirect
                          ])