From a2bc6b4b265f13ab099c50c2ccf768c64ec7eacf Mon Sep 17 00:00:00 2001 From: Marius Gedminas Date: Thu, 24 Sep 2015 12:43:33 +0300 Subject: [PATCH] Bugfix: if you define __eq__, you should define __ne__ too --- lib/ansible/inventory/host.py | 3 +++ test/units/inventory/test_host.py | 35 +++++++++++++++++++++++++++++++ 2 files changed, 38 insertions(+) create mode 100644 test/units/inventory/test_host.py diff --git a/lib/ansible/inventory/host.py b/lib/ansible/inventory/host.py index 77a0b21f50..fa2433956d 100644 --- a/lib/ansible/inventory/host.py +++ b/lib/ansible/inventory/host.py @@ -38,6 +38,9 @@ class Host: def __eq__(self, other): return self.name == other.name + def __ne__(self, other): + return not self.__eq__(other) + def serialize(self): groups = [] for group in self.groups: diff --git a/test/units/inventory/test_host.py b/test/units/inventory/test_host.py new file mode 100644 index 0000000000..f9f500a63e --- /dev/null +++ b/test/units/inventory/test_host.py @@ -0,0 +1,35 @@ +# Copyright 2015 Marius Gedminas +# +# This file is part of Ansible +# +# Ansible is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# Ansible is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with Ansible. If not, see . + +import unittest + +from ansible.inventory.host import Host + + +class TestHost(unittest.TestCase): + + def setUp(self): + self.hostA = Host('a') + self.hostB = Host('b') + + def test_equality(self): + self.assertEqual(self.hostA, self.hostA) + self.assertNotEqual(self.hostA, self.hostB) + self.assertEqual(self.hostA, Host('a')) + # __ne__ is a separate method + self.assertFalse(self.hostA != Host('a')) +