def test_to_csv_returns_csv_str(self):
     result_set = ResultSet(
         job=Job(
             name="foobizz",
             description="FooBizz",
             graph_spec=JobGraphSpec(graph_names=["test"]),
             category=Category.gov,
             severity=Severity.debug,
             query="select ?foo ?fizz where { ?foo ?fizz } order by ?foo",
             active=True,
             created=datetime(2020, 1, 1),
             query_fields=["account_id", "account_name"],
             max_graph_age_sec=10000,
             result_expiration_sec=100000,
             max_result_age_sec=100000,
             notify_if_results=False,
         ),
         graph_spec=ResultSetGraphSpec(
             graph_uris_load_times={"https://alti/alti/1/1234": 1612974818}
         ),
         results=[
             Result(account_id="123456789101", result={"foo": "boo", "fizz": "bizz"}),
             Result(account_id="123456789101", result={"foo": "boo2", "fizz": "bizz2"}),
         ],
     )
     expected_csv = "account_id,foo,fizz\n123456789101,boo,bizz\n123456789101,boo2,bizz2\n"
     self.assertEqual(expected_csv, result_set.to_csv())
Beispiel #2
0
 def lambda_handler(cls, event: Dict[str, Any], _: Any) -> None:
     """lambda entrypoint"""
     config = Config()
     result = Result(**event)
     logger = Logger()
     errors: List[str] = []
     with logger.bind(result=result):
         logger.info(event=QJLogEvents.ResultRemediationStart)
         try:
             session = get_assumed_session(
                 account_id=result.account_id,
                 role_name=config.remediator_target_role_name,
                 external_id=config.remediator_target_role_external_id,
             )
             cls.remediate(session=session,
                           result=result.result,
                           dry_run=config.dry_run)
             logger.info(event=QJLogEvents.ResultRemediationSuccessful)
         except Exception as ex:
             logger.error(event=QJLogEvents.ResultRemediationFailed,
                          error=str(ex))
             errors.append(str(ex))
     if errors:
         raise RemediationError(
             f"Errors found during remediation: {errors}")
 def test_result_account_id_is_int(self):
     with self.assertRaises(ValueError):
         Result(account_id="abcd", result={"foo": "boo"})
 def test_result_account_id_zero_fill(self):
     result = Result(account_id="1234", result={"foo": "boo"})
     self.assertEqual(result.account_id, "000000001234")