'''
Extend Autest with IP-related utilities.
'''
#  Licensed to the Apache Software Foundation (ASF) under one
#  or more contributor license agreements.  See the NOTICE file
#  distributed with this work for additional information
#  regarding copyright ownership.  The ASF licenses this file
#  to you under the Apache License, Version 2.0 (the
#  "License"); you may not use this file except in compliance
#  with the License.  You may obtain a copy of the License at
#
#      http://www.apache.org/licenses/LICENSE-2.0
#
#  Unless required by applicable law or agreed to in writing, software
#  distributed under the License is distributed on an "AS IS" BASIS,
#  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
#  See the License for the specific language governing permissions and
#  limitations under the License.


from ports import get_port

# this forms is for the global process define

# New member function for Test object, that reserves TCP port(s) from the list of available TCP ports, for
# use in the test.  Each argument is a string, containing the name of a variable to add to Test.Variables .
# For each argument, a port will be reserved, and its number will be assigned to the new variable for the
# argument.
#


def get_tcp_port(obj, *newVariables):
    for v in newVariables:
        if not isinstance(v, str):
            raise TypeError("all function arguments must be strings")
        get_port(obj, v)


#AddTestEntityMember(get_tcp_port, name="GetTcpPort")
ExtendTest(get_tcp_port, name="GetTcpPort")
