Unit tests: Fix wrong assert function name in port update
Unit tests: Fix wrong assert function name in port update

Due to a typo in an assert function name (assset_called_once_with()
instead of assert_called_once_with()), we weren't actually checking the
arguments passed to Neutron in UpdatePortTest. Fix the function name and
modify the test so it actually works.

Among the fixes required:

- Actually return data from create_port
- Call Resource.create() instead of handle_create(), to ensure that the
  resource is stored in the DB (and hence that it gets a name)
- Mock show_port(), which is called from check_create_complete()
- Handle later changes to the format of data passed (e.g. an empty
  allowed_address_pairs should be passed as an empty list instead of None)
- Actually test the case where the port name is initially specified, and
  then removed on update
- Fix the format of arguments to create_port and update_port

This patch contains a workaround for a regression introduced by
d37cc18b1b7a531edbcf9658600fc467fbe24e2d that causes a 'value_specs' key
to be passed to the update_port call. This will be fixed in a subsequent
patch.

Change-Id: I37948721a0a653a18049aae6502fafb88030479c
Co-Authored-By: zhufl <7e78889d4edcf2565171fe0ee368149fc97b90bb@zte.com.cn>
Task: 34764

openstack/heat,openstack/heat