Statistics
| Branch: | Tag: | Revision:

root / snf-tools / synnefo_tools / burnin / projects_tests.py @ c2f037ff

History | View | Annotate | Download (2.8 kB)

1
# Copyright 2014 GRNET S.A. All rights reserved.
2
#
3
# Redistribution and use in source and binary forms, with or
4
# without modification, are permitted provided that the following
5
# conditions are met:
6
#
7
#   1. Redistributions of source code must retain the above
8
#      copyright notice, this list of conditions and the following
9
#      disclaimer.
10
#
11
#   2. Redistributions in binary form must reproduce the above
12
#      copyright notice, this list of conditions and the following
13
#      disclaimer in the documentation and/or other materials
14
#      provided with the distribution.
15
#
16
# THIS SOFTWARE IS PROVIDED BY GRNET S.A. ``AS IS'' AND ANY EXPRESS
17
# OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
18
# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
19
# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL GRNET S.A OR
20
# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
21
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
22
# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
23
# USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
24
# AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
25
# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
26
# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
27
# POSSIBILITY OF SUCH DAMAGE.
28
#
29
# The views and conclusions contained in the software and
30
# documentation are those of the authors and should not be
31
# interpreted as representing official policies, either expressed
32
# or implied, of GRNET S.A.
33

    
34
"""
35
This is the burnin class that tests the Projects functionality
36

37
"""
38

    
39
import random
40

    
41
from synnefo_tools.burnin.common import Proper
42
from synnefo_tools.burnin.cyclades_common import CycladesTests
43

    
44

    
45
# pylint: disable=too-many-public-methods
46
class QuotasTestSuite(CycladesTests):
47
    """Test Quotas functionality"""
48
    server = Proper(value=None)
49

    
50
    def test_001_check_skip(self):
51
        """Check if we are members in more than one projects"""
52
        self._skip_suite_if(len(self.quotas.keys()) < 2,
53
                            "This user is not a member of 2 or more projects")
54

    
55
    def test_002_create(self):
56
        """Create a machine to a different project than base"""
57
        image = random.choice(self._parse_images())
58
        flavors = self._parse_flavors()
59

    
60
        # We want to create our machine in a project other than 'base'
61
        projects = self.quotas.keys()
62
        projects.remove(self._get_uuid())
63
        (flavor, project) = self._find_project(flavors, projects)
64

    
65
        # Create machine
66
        self.server = self._create_server(image, flavor, network=True,
67
                                          project_id=project)
68

    
69
        # Wait for server to become active
70
        self._insist_on_server_transition(
71
            self.server, ["BUILD"], "ACTIVE")