Example #1
0
    def test_create_partition_batches_by_one_hundred(self):
        self.s3.create_bucket(Bucket=self.bucket)
        self.helper.make_database_and_table()

        partitions = sorted(self.helper.create_many_partitions(count=150))
        partitioner = Partitioner(self.database,
                                  self.table,
                                  aws_region=self.region)

        create_partitions_mock = MagicMock(return_value=[])
        partitioner.glue.batch_create_partition = create_partitions_mock

        partitioner.create_partitions(partitions)

        first_list = [
            partitioner._partition_input(p) for p in partitions[:100]
        ]
        second_list = [
            partitioner._partition_input(p) for p in partitions[100:]
        ]
        calls = [
            call(DatabaseName=self.database,
                 TableName=self.table,
                 PartitionInputList=first_list),
            call(DatabaseName=self.database,
                 TableName=self.table,
                 PartitionInputList=second_list),
        ]

        create_partitions_mock.call_count.should.equal(2)
        create_partitions_mock.assert_has_calls(calls)
Example #2
0
    def test_create_partitions(self):
        self.s3.create_bucket(Bucket=self.bucket)
        self.helper.make_database_and_table()

        partition = self.helper.create_partition_data()

        partitioner = Partitioner(self.database,
                                  self.table,
                                  aws_region=self.region)

        create_partitions_mock = MagicMock(return_value=[])
        partitioner.glue.batch_create_partition = create_partitions_mock

        partitioner.create_partitions([partition])

        create_partitions_mock.assert_called_with(
            DatabaseName=self.database,
            TableName=self.table,
            PartitionInputList=[partitioner._partition_input(partition)])