Fix yaml_fs tests

Signed-off-by: martin f. krafft <madduck@madduck.net>
Simplify yaml_fs merge loop

By merging into an empty Entity, we can simplify the loop.

Signed-off-by: martin f. krafft <madduck@madduck.net>
Add test for merging into empty Entity

Signed-off-by: martin f. krafft <madduck@madduck.net>
Do not use constructors in default arguments

Something like __init__(self, classes=Classes(), …) causes Python to
create a single Classes instance that gets used as default argument
subsequently. If something changes the variable then referenced by
classes, subsequent calls to the default constructor will cause the
changed object to be referenced.

Signed-off-by: martin f. krafft <madduck@madduck.net>
Add test target to Makefile

Signed-off-by: martin f. krafft <madduck@madduck.net>
Properly handle negater, if not default

Signed-off-by: martin f. krafft <madduck@madduck.net>
Avoid Py2.5 syntax

'foo' if condition else 'bar' is post-Python-2.5 syntax and while
convenient, just not necessary.
Switch to Python unittest

Nose has some inherent problems as it is file-based, so let's switch
to the Python default anyway.

Signed-off-by: martin f. krafft <madduck@madduck.net>
Improve Entity class

Among a bit of cleanup, this mainly adds type-safety and a better
representation of instances.

Also, switch from nose to unittest.

Signed-off-by: martin f. krafft <madduck@madduck.net>
Reimplement Classes as simplified (not-fully-functional) ordered set

Classes is essentially an ordered set, but we only need very limited
functionality, so keep it simple and provide only the very basics.

Purposely, Classes no longer derives from list so as to not give a false
impression.

Also, switch from nose to unittest.

Signed-off-by: martin f. krafft <madduck@madduck.net>
Reimplement Applications as a subclass of Classes

Applications are like Classes an ordered set, so we inherit from Classes
and thus reuse the same, limited functionality.

The concept of negation requires to override extend() and append().
Since we would like Applications to keep a memory of negations they
embody, for instance for later merging (extending) into another list,
thereby removing elements, the negations are kept in a separate list.

Also, switch from nose to unittest.

Signed-off-by: martin f. krafft <madduck@madduck.net>
Reimplement Parameters

Parameters is not a dict, so let's not pretend to be one. Instead, be
a very specific type doing exactly what it should and exposing only as
much functionality as needed.

This is a complete rewrite and pulls in the entire mergers logic.

Also switches from nose to unittest.

Signed-off-by: martin f. krafft <madduck@madduck.net>
Default inventory_base_uri to dirname of script for Salt adapter

Signed-off-by: martin f. krafft <madduck@madduck.net>