diff options
author | Petr Viktorin <pviktori@redhat.com> | 2013-05-28 13:31:37 +0200 |
---|---|---|
committer | Petr Viktorin <pviktori@redhat.com> | 2013-07-15 15:49:06 +0200 |
commit | 353f3c62c3dc95db471a2b23fcd90d6071542362 (patch) | |
tree | 00fd09352061194c964cd151b1480b6405b69a6d /ipatests/test_integration/test_simple_replication.py | |
parent | c577420e40a353f3038263bf8ef763f7c01f6f22 (diff) | |
download | freeipa-353f3c62c3dc95db471a2b23fcd90d6071542362.tar.gz freeipa-353f3c62c3dc95db471a2b23fcd90d6071542362.tar.xz freeipa-353f3c62c3dc95db471a2b23fcd90d6071542362.zip |
Add a framework for integration testing
Add methods to run commands and copy files to Host objects.
Adds a base class for integration tests which can currently install
and uninstall IPA in a "star" topology with per-test specified number
of hosts.
A simple test for user replication between two masters is provided.
Log files from the remote hosts can be marked for collection, but the
actual collection is left to a Nose plugin.
Part of the work for: https://fedorahosted.org/freeipa/ticket/3621
Diffstat (limited to 'ipatests/test_integration/test_simple_replication.py')
-rw-r--r-- | ipatests/test_integration/test_simple_replication.py | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/ipatests/test_integration/test_simple_replication.py b/ipatests/test_integration/test_simple_replication.py new file mode 100644 index 000000000..80c0c4227 --- /dev/null +++ b/ipatests/test_integration/test_simple_replication.py @@ -0,0 +1,51 @@ +# Authors: +# Petr Viktorin <pviktori@redhat.com> +# +# Copyright (C) 2013 Red Hat +# see file 'COPYING' for use and warranty information +# +# This program 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. +# +# This program 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 this program. If not, see <http://www.gnu.org/licenses/>. + +import time + +from ipatests.test_integration.base import IntegrationTest + + +class TestSimpleReplication(IntegrationTest): + num_replicas = 1 + topology = 'star' + + def test_user_replication_to_replica(self): + login = 'testuser1' + self.master.run_command(['ipa', 'user-add', login, + '--first', 'test', + '--last', 'user']) + + self.log.debug('Sleeping so replication has a chance to finish') + time.sleep(5) + + result = self.replicas[0].run_command(['ipa', 'user-show', login]) + assert 'User login: %s' % login in result.output + + def test_user_replication_to_master(self): + login = 'testuser2' + self.replicas[0].run_command(['ipa', 'user-add', login, + '--first', 'test', + '--last', 'user']) + + self.log.debug('Sleeping so replication has a chance to finish') + time.sleep(5) + + result = self.master.run_command(['ipa', 'user-show', login]) + assert 'User login: %s' % login in result.output |