Example #1
0
def batch_file() -> BatchFile:
    batch = BatchFile(
        index=1,
        keys=[
            TemporaryExposureKey(
                key_data=base64.b64encode(
                    "first_key".encode("utf-8")).decode("utf-8"),
                transmission_risk_level=TransmissionRiskLevel.low,
                rolling_start_number=1,
            ),
            TemporaryExposureKey(
                key_data=base64.b64encode(
                    "second_key".encode("utf-8")).decode("utf-8"),
                transmission_risk_level=TransmissionRiskLevel.low,
                rolling_start_number=2,
            ),
            TemporaryExposureKey(
                key_data=base64.b64encode(
                    "third_key".encode("utf-8")).decode("utf-8"),
                transmission_risk_level=TransmissionRiskLevel.highest,
                rolling_start_number=3,
            ),
        ],
        period_start=datetime.utcnow() - timedelta(days=1),
        period_end=datetime.utcnow(),
        sub_batch_count=2,
        sub_batch_index=1,
        client_content=b"this_is_a_zip_file",
    )
    batch.save()
    return batch
def batch_files() -> List[BatchFile]:
    num_batches = 10
    start_datetime = datetime.utcnow() - timedelta(days=num_batches - 1)
    batches = []
    for i in range(num_batches):
        with freeze_time(start_datetime + timedelta(days=i)):
            batches.append(
                BatchFile(
                    index=i + 1,
                    keys=[
                        TemporaryExposureKey(
                            key_data=generate_random_key_data(),
                            transmission_risk_level=TransmissionRiskLevel.
                            highest,
                            rolling_start_number=int(
                                datetime.utcnow().timestamp() /
                                timedelta(minutes=10).total_seconds()),
                            rolling_period=144,
                        )
                    ],
                    period_start=datetime.utcnow() - timedelta(days=1),
                    period_end=datetime.utcnow(),
                    sub_batch_index=1,
                    sub_batch_count=1,
                ).save())
    return batches
Example #3
0
    def create_tek(  # pylint: disable=no-self-use
            self, data: Dict, **kwargs: Any) -> TemporaryExposureKey:
        """
        Return the TemporaryExposureKey object associated with the deserialized data.

        :param data: the deserialized data.
        :param kwargs: the additional unused arguments coming from the decorator.
        :return: the TemporaryExposureKey object associated with the given data.
        """
        return TemporaryExposureKey(**data)
def generate_batch_of_keys(n: int = 14) -> Iterable[TemporaryExposureKey]:
    """
    Returns a list of temporary exposure keys, one per day starting from now.
    :param n:
    :return:
    """
    starting_date = datetime.utcnow() - timedelta(days=n - 1)
    return [
        TemporaryExposureKey(
            key_data=generate_random_key_data(),
            rolling_start_number=int(
                (starting_date + timedelta(days=day)).timestamp() / 600),
        ) for day in range(config.MAX_KEYS_PER_UPLOAD)
    ]
Example #5
0
def generate_random_batch(index: int, num_keys: int, period_start: datetime,
                          period_end: datetime) -> None:
    rsn = int(datetime.utcnow().timestamp() / 600)

    keys = [
        TemporaryExposureKey(
            key_data=generate_random_key_data(),
            transmission_risk_level=random.choice(
                [tr for tr in TransmissionRiskLevel]),
            rolling_start_number=rsn,
        ) for _ in range(num_keys)
    ]
    BatchFile(index=index,
              keys=keys,
              period_start=period_start,
              period_end=period_end).save()
async def generate_various_data(num_days: int) -> None:
    starting_date = datetime.utcnow() - timedelta(days=num_days)
    for i in range(num_days):
        with freeze_time(starting_date + timedelta(days=i)):
            generate_random_uploads(
                1,
                start_time=datetime.utcnow(),
                end_time=datetime.utcnow() + timedelta(days=1, seconds=1),
            )
            BatchFile(
                index=i,
                keys=[
                    TemporaryExposureKey(key_data="dummy_data",
                                         rolling_start_number=12345)
                ],
                period_start=datetime.today() - timedelta(days=1, seconds=1),
                period_end=datetime.today(),
            ).save()