Beispiel #1
0
def test_projection_duplicate():
    name = str(uuid4())
    portainer: Portainer = Portainer(name, "http://local.com", "username",
                                     "password")
    Persistance.portainer_repository().save(portainer)

    portainer: Portainer = Portainer(name, "http://local.com", "username",
                                     "password")
    try:
        Persistance.portainer_repository().save(portainer)
        assert False
    except Exception:
        assert True
Beispiel #2
0
def test_remove_stack():
    portainer: Portainer = Portainer("prod", "https://portainer.com:5000",
                                     "username", "password")
    portainer.add_stack("nginx")
    portainer.remove_stack("nginx")

    assert len(portainer.stacks) == 0
Beispiel #3
0
def test_name_exists():
    name = str(uuid4())
    portainer: Portainer = Portainer(name, "http://local.com", "username",
                                     "password")
    Persistance.portainer_repository().save(portainer)

    assert Persistance.portainer_name_view().name_exists(name)
Beispiel #4
0
def test_add_stack():
    portainer: Portainer = Portainer("prod", "https://portainer.com:5000",
                                     "username", "password")
    portainer.add_stack("nginx")

    assert len(portainer.stacks) == 1
    assert all(isinstance(s, Stack) for s in portainer.stacks)
    assert [s.name for s in portainer.stacks] == ["nginx"]
Beispiel #5
0
def test_creation():
    portainer: Portainer = Portainer("prod", "https://portainer.com:5000",
                                     "username", "password")

    assert portainer.name == "prod"
    assert portainer.endpoint == "https://portainer.com:5000"
    assert portainer.next_check <= datetime.datetime.now().timestamp()
    assert portainer.username == "username"
    assert portainer.password == "password"
Beispiel #6
0
def test_prepare_check():
    portainer: Portainer = Portainer("prod", "https://portainer.com:5000",
                                     "username", "password")
    before = datetime.datetime.now().timestamp()
    portainer.prepare_check()

    assert (before <= portainer.next_check <=
            datetime.datetime.now().timestamp() +
            settings.PORTAINER_VALIDITY_TIMEOUT)
Beispiel #7
0
def test_next_check_property_immutable():
    portainer: Portainer = Portainer("prod", "https://portainer.com:5000",
                                     "username", "password")

    try:
        portainer.next_check = 3
        assert False
    except Exception:
        assert True
Beispiel #8
0
def test_endpoint_immutable():
    portainer: Portainer = Portainer("prod", "https://portainer.com:5000",
                                     "username", "password")

    try:
        portainer.endpoint = "https://portainer.com:6000"
        assert False
    except Exception:
        assert True
Beispiel #9
0
def test_name_immutable():
    portainer: Portainer = Portainer("prod", "https://portainer.com:5000",
                                     "username", "password")

    try:
        portainer.name = "preprod"
        assert False
    except Exception:
        assert True
Beispiel #10
0
def test_remove_stack_not_exists():
    portainer: Portainer = Portainer("prod", "https://portainer.com:5000",
                                     "username", "password")

    try:
        portainer.remove_stack("nginx")
        assert False
    except AssertionError:
        assert True
Beispiel #11
0
def test_projection():
    name = str(uuid4())
    portainer: Portainer = Portainer(name, "http://local.com", "username",
                                     "password")
    Persistance.portainer_repository().save(portainer)

    collection = pymongo.MongoClient().portainer2git.portainer_name

    assert collection.count_documents({"name": name}) == 1
Beispiel #12
0
def test_add_stack_duplicate():
    portainer: Portainer = Portainer("prod", "https://portainer.com:5000",
                                     "username", "password")
    portainer.add_stack("nginx")

    try:
        portainer.add_stack("nginx")
        assert False
    except AssertionError:
        assert True
    def create_portainer(
        self, name: str, endpoint: str, username: str, password: str
    ) -> str:
        """Create a portainer instance and return its id."""
        if self.__portainer_name_view.name_exists(name):
            raise ValueError("Portainer name must be unique")

        try:
            portainer: Portainer = Portainer(name, endpoint, username, password)
            self.__portainer_repo.save(portainer)
            self.__logger.info(
                f"Portainer instance {name} created with "
                f"id {portainer.object_id}"
            )
            return portainer.object_id
        except AssertionError as e:
            message = f"Cannot create portainer: {e}"
            self.__logger.error(message)
            raise ValueError(message)
Beispiel #14
0
def test_invalid_endpoint():
    try:
        Portainer("prod", "https://portainer:5000", "username", "password")
        assert False
    except AssertionError:
        assert True
 def create_blank_domain_object(self):
     return Portainer("local", "http://test.com", "username", "password")