def main():
    """Create inventory and copy to test_data."""

    def create_inventory(client):
        """Create inventory from mock data."""

        for progress in client.inventory.create(background=False,
                                                import_as=''):
            continue

    fake_time = importer_test.FAKE_DATETIME
    _ = mock.patch.object(
        date_time,
        'get_utc_now_datetime',
        return_value=fake_time).start()

    # Ensure test data doesn't get deleted
    mock_unlink = mock.patch.object(
        os, 'unlink', autospec=True).start()
    mock_copy_file_from_gcs = mock.patch.object(
        file_loader,
        'copy_file_from_gcs',
        autospec=True).start()

    # Mock copy_file_from_gcs to return correct test data file
    def _copy_file_from_gcs(file_path, *args, **kwargs):
        """Fake copy_file_from_gcs."""
        if 'resource' in file_path:
            return os.path.join(TEST_RESOURCE_DIR_PATH,
                                'mock_cai_resources.dump')
        elif 'iam_policy' in file_path:
            return os.path.join(TEST_RESOURCE_DIR_PATH,
                                'mock_cai_iam_policies.dump')

    mock_copy_file_from_gcs.side_effect = _copy_file_from_gcs

    engine, tmpfile = create_test_engine_with_file()
    config = TestServiceConfig(engine)

    with gcp_api_mocks.mock_gcp():
        runner = ApiTestRunner(config, [GrpcInventoryFactory])
        runner.run(create_inventory)
        time.sleep(5)

    copy_db_file_to_test(tmpfile, 'forseti-test.db')

    engine, tmpfile = create_test_engine_with_file()
    config = TestCompositeServiceConfig(engine)

    with gcp_api_mocks.mock_gcp():
        runner = ApiTestRunner(config, [GrpcInventoryFactory])
        runner.run(create_inventory)
        time.sleep(5)

    copy_db_file_to_test(tmpfile, 'forseti-composite-test.db')
Example #2
0
def main():
    """Create inventory and copy to test_data."""
    def create_inventory(client):
        """Create inventory from mock data."""

        for progress in client.inventory.create(background=False,
                                                import_as=''):
            continue

    fake_time = importer_test.FAKE_DATETIME
    _ = mock.patch.object(date_time,
                          'get_utc_now_datetime',
                          return_value=fake_time).start()

    # Ensure test data doesn't get deleted
    mock_unlink = mock.patch.object(os, 'unlink', autospec=True).start()

    # Mock download to return correct test data file
    def _fake_download(full_bucket_path, output_file):
        """Fake copy_file_from_gcs."""
        if 'resource' in full_bucket_path:
            fake_file = os.path.join(TEST_RESOURCE_DIR_PATH,
                                     'mock_cai_resources.dump')
        elif 'iam_policy' in full_bucket_path:
            fake_file = os.path.join(TEST_RESOURCE_DIR_PATH,
                                     'mock_cai_iam_policies.dump')
        with open(fake_file, 'rb') as f:
            output_file.write(f.read())

    engine, tmpfile = create_test_engine_with_file()
    config = TestServiceConfig(engine)

    with gcp_api_mocks.mock_gcp() as gcp_mocks:
        gcp_mocks.mock_storage.download.side_effect = _fake_download
        runner = ApiTestRunner(config, [GrpcInventoryFactory])
        runner.run(create_inventory)
        engine.dispose()
        time.sleep(5)

    copy_db_file_to_test(tmpfile, 'forseti-test.db')

    engine, tmpfile = create_test_engine_with_file()
    config = TestCompositeServiceConfig(engine)

    with gcp_api_mocks.mock_gcp() as gcp_mocks:
        gcp_mocks.mock_storage.download.side_effect = _fake_download
        runner = ApiTestRunner(config, [GrpcInventoryFactory])
        runner.run(create_inventory)
        engine.dispose()
        time.sleep(5)

    copy_db_file_to_test(tmpfile, 'forseti-composite-test.db')
Example #3
0
 def setUp(self):
     """Setup method."""
     ForsetiTestCase.setUp(self)
     self.engine, self.dbfile = create_test_engine_with_file()
     scanner_dao.ScannerIndex.__table__.create(bind=self.engine)
     session_maker = sessionmaker()
     self.session = session_maker(bind=self.engine)
Example #4
0
    def setUp(self):
        """Setup method."""
        CrawlerBase.setUp(self)
        self.engine, self.dbfile = create_test_engine_with_file()
        session_maker = sessionmaker()
        self.session = session_maker(bind=self.engine)
        initialize(self.engine)
        self.inventory_config = InventoryConfig(
            gcp_api_mocks.ORGANIZATION_ID, '', {}, 0, {
                'enabled': True,
                'gcs_path': 'gs://test-bucket'
            })
        self.inventory_config.set_service_config(FakeServerConfig(self.engine))

        # Ensure test data doesn't get deleted
        self.mock_unlink = mock.patch.object(os, 'unlink',
                                             autospec=True).start()
        self.mock_copy_file_from_gcs = mock.patch.object(
            file_loader, 'copy_file_from_gcs', autospec=True).start()
        self.maxDiff = None

        # Mock copy_file_from_gcs to return correct test data file
        def _copy_file_from_gcs(file_path, *args, **kwargs):
            """Fake copy_file_from_gcs."""
            del args, kwargs
            if 'resource' in file_path:
                return os.path.join(TEST_RESOURCE_DIR_PATH,
                                    'mock_cai_resources.dump')
            elif 'iam_policy' in file_path:
                return os.path.join(TEST_RESOURCE_DIR_PATH,
                                    'mock_cai_iam_policies.dump')

        self.mock_copy_file_from_gcs.side_effect = _copy_file_from_gcs
    def setUp(self):
        """Setup method."""
        unittest_utils.ForsetiTestCase.setUp(self)
        self.engine, self.dbfile = create_test_engine_with_file()
        _session_maker = sessionmaker()
        self.session = _session_maker(bind=self.engine)
        storage.initialize(self.engine)
        self.inventory_config = InventoryConfig(
            'organizations/987654321', '', {}, 0, {
                'enabled': True,
                'gcs_path': 'gs://test-bucket'
            })

        # Ensure test data doesn't get deleted
        self.mock_unlink = mock.patch.object(os, 'unlink',
                                             autospec=True).start()
        self.mock_export_assets = mock.patch.object(
            cloudasset_api.CloudAssetClient, 'export_assets',
            autospec=True).start()
        self.mock_copy_file_from_gcs = mock.patch.object(
            file_loader, 'copy_file_from_gcs', autospec=True).start()
        self.mock_auth = mock.patch.object(
            google.auth,
            'default',
            return_value=(mock.Mock(spec_set=credentials.Credentials),
                          'test-project')).start()
Example #6
0
 def setUp(self):
     """Setup method."""
     ForsetiTestCase.setUp(self)
     self.engine, self.dbfile = create_test_engine_with_file()
     _session_maker = sessionmaker()
     self.session = _session_maker(bind=self.engine)
     initialize(self.engine)
Example #7
0
 def setUp(self):
     """Setup method."""
     ForsetiTestCase.setUp(self)
     self.fake_utcnow = datetime(year=1910, month=9, day=8, hour=7, minute=6)
     self.engine, self.dbfile = create_test_engine_with_file()
     _session_maker = sessionmaker()
     self.session = _session_maker(bind=self.engine)
     initialize(self.engine)
Example #8
0
 def setUp(self):
     """Setup method."""
     ForsetiTestCase.setUp(self)
     self.engine, self.dbfile = create_test_engine_with_file()
     session_maker = sessionmaker()
     self.session = session_maker(bind=self.engine)
     storage.initialize(self.engine)
     scanner_dao.initialize(self.engine)
     self.session.flush()
     self.violation_access = scanner_dao.ViolationAccess(self.session)
     self.inv_index_id1, self.inv_index_id2, self.inv_index_id3 = (
         _setup_inv_indices(self.session))
Example #9
0
    def setUp(self):
        """Setup method."""
        self.engine, self.dbfile = create_test_engine_with_file()

        ForsetiTestCase.setUp(self)
Example #10
0
 def setUp(self):
     self.engine, self.dbfile = create_test_engine_with_file()
     self.model_manager = ModelManager(self.engine)