Sha256: 95a0d2ec7e90d0e195237daa6f17a1a3429be9662203d0126c44316e2029427e

Contents?: true

Size: 1.35 KB

Versions: 1

Compression:

Stored size: 1.35 KB

Contents

require 'minitest/autorun'
require './lib/amazon_athena/commands/alter_table_drop_partition'

describe AmazonAthena::Commands::AlterTableDropPartition do

  before do
    @klass = AmazonAthena::Commands::AlterTableDropPartition
  end

  it "builds a ddl statement" do
    partitions = []

    partitions << AmazonAthena::Partition.new(
      options: {
        dt: '2014-05-14',
        country: 'IN'
      }
    )

    partitions << AmazonAthena::Partition.new(
      options: {
        dt: '2014-05-15',
        country: 'IN'
      }
    )

    cmd = @klass.new("mydb.mytable", partitions)
    expected = <<~SQL
    ALTER TABLE mydb.mytable DROP
      PARTITION (dt = '2014-05-14', country = 'IN'),
      PARTITION (dt = '2014-05-15', country = 'IN');
    SQL
    assert_equal expected.strip, cmd.statement
  end

  it "executes a query" do
    partitions = []

    partitions << AmazonAthena::Partition.new(
      options: {
        dt: '2014-05-14',
        country: 'IN'
      }
    )

    cmd = @klass.new("mydb.mytable", partitions)
    sql = <<~SQL
    ALTER TABLE mydb.mytable DROP
      PARTITION (dt = '2014-05-14', country = 'IN');
    SQL

    results = MiniTest::Mock.new
    results.expect(:raw_output, nil)

    conn = MiniTest::Mock.new
    conn.expect(:query, results, [sql.strip])

    cmd = @klass.new("mydb.mytable", partitions)
    cmd.run(conn)
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
athena-cli-0.1.0 test/lib/amazon_athena/commands/alter_table_drop_partition_test.rb