Added Features
- new Asset methods, including:
- copy_asset_attributes(): copies attributes (including CAs!) from one asset to another
- clear_asset_custom_attributes(): clears specified CAs from an asset
- get_asset_users(): gets a list of an assets users
- delete_asset_users(): deletes asset users, based on a provided list
- add_asset_user(): adds a person to an asset as a user
- get_asset_custom_attribute_value_by_name(): gets the value of a CA for a specific access
- change_asset_location(): moves an asset from one Location/Room to another
- Better unit testing
Squashed Bugs
- fixed lots of issues with update_assets() and CAs in specific situations
- build_asset_custom_attribute() now correctly handles datetime objects (puts them in the TDX datetime format)
- get_ticket_by_id() now correctly returns None if no ticket is found
- get_asset_custom_attribute_by_name_id() no longer compares ints to strings
- build_asset() can now handle CAs in the following forms
- {'Attributes': [list of attribute dicts]} (new)
- {'Key': 'Value', 'Key2': 'Value2'} (new)
- [list of attribute dicts] (previously supported)