def setUp(self, mock_now):
        """Create and configure a new app instance for each test."""
        mock_now.return_value = dt.datetime(2019, 4, 1, tzinfo=dt.timezone.utc)

        # create the app with common test config
        self.app = create_app('test')
        self.app_context = self.app.app_context()
        self.app_context.push()
        self.client = self.app.test_client()

        db.create_all()
        Locker.set_initial()
        Server.set_initial()
        db.session.commit()
Esempio n. 2
0
    def setUp(self):
        self.maxDiff = None
        self.app_join = create_app('test')
        self.app_join.config['SERVER_NAME'] = 'join'
        self.app_join_context = self.app_join.app_context()
        self.client_join = self.app_join.test_client()
        with self.app_join.app_context():
            db.create_all()
            set_initial(server=False)
            self.join_server_id = Server.set_initial()
            db.session.commit()
            self.mock_dm = mock.MagicMock()
            self.mock_dm.flask_app = self.app_join
            self.mock_dm.engine = db.engine
            self.mock_dm.catalog_manager.db_update_catalog = update_db_catalog

        super().setUp()
        self.app.config['SECURIZER'] = True
        self.app_join.config['SECURIZER'] = True
        self.token = create_access_token(JOIN,
                                         additional_claims={'applicant': 'me'})
        self.setUpPyfakefs()

        open('/origin_key', 'w').write('keyfile')
        open('/origin_cert', 'w').write('certfile')
Esempio n. 3
0
def populate_initial_data(dm: Dimensigon):
    from dimensigon.domain.entities import ActionTemplate, Locker, Server, User, Parameter

    with session_scope(session=dm.get_session()) as session:
        gates = dm.config.http_conf.get('binds', None)

        SchemaChanges.set_initial(session)
        dm.server_id = Server.set_initial(session, gates)

        Locker.set_initial(session, unlock=True)
        ActionTemplate.set_initial(session)
        User.set_initial(session)
        Parameter.set_initial(session)
Esempio n. 4
0
    def test_get_servers_from_scope_more_than_min_quorum(
            self, mock_get_now, mock_app):
        mock_get_now.return_value = dt.datetime(2019,
                                                4,
                                                1,
                                                tzinfo=dt.timezone.utc)
        Server.set_initial()
        servers = []
        for i in range(0, 7):

            s = Server(f'node{i}', port=5000, created_on=old_age)

            if i == 0:
                r = Route(s, cost=0)
            else:
                r = Route(s, random.choice(servers), cost=i)

            db.session.add_all([s, r])

            servers.append(s)

        mock_get_now.return_value = dt.datetime(2019,
                                                4,
                                                2,
                                                tzinfo=dt.timezone.utc)
        mock_app.dm.cluster_manager.get_alive.return_value = [
            s.id for s in servers
        ]
        s62 = Server(f'node72', port=5000)
        Route(s62, random.choice(servers), cost=6)
        db.session.add(s62)

        quorum = get_servers_from_scope(scope=Scope.CATALOG)

        self.assertEqual(8, len(quorum))
        self.assertNotIn(s62, quorum)
        self.assertIn(s, quorum)
        self.assertIn(Server.get_current(), quorum)