@mock_ec2
def test_get_all_spot_instance_requests_filtering():
    '\n    Test that moto correctly filters spot instance requests\n    '
    conn = boto.connect_ec2()
    request1 = conn.request_spot_instances(price=0.5, image_id='ami-abcd1234')
    request2 = conn.request_spot_instances(price=0.5, image_id='ami-abcd1234')
    conn.request_spot_instances(price=0.5, image_id='ami-abcd1234')
    request1[0].add_tag('tag1', 'value1')
    request1[0].add_tag('tag2', 'value2')
    request2[0].add_tag('tag1', 'value1')
    request2[0].add_tag('tag2', 'wrong')
    requests = conn.get_all_spot_instance_requests(filters={'state': 'active'})
    requests.should.have.length_of(0)
    requests = conn.get_all_spot_instance_requests(filters={'state': 'open'})
    requests.should.have.length_of(3)
    requests = conn.get_all_spot_instance_requests(filters={'tag:tag1': 'value1'})
    requests.should.have.length_of(2)
    requests = conn.get_all_spot_instance_requests(filters={'tag:tag1': 'value1', 'tag:tag2': 'value2'})
    requests.should.have.length_of(1)
Test that moto correctly filters spot instance requests
@mock_ec2
def test_get_all_spot_instance_requests_filtering():
    '\n    \n    '
    conn = boto.connect_ec2()
    request1 = conn.request_spot_instances(price=0.5, image_id='ami-abcd1234')
    request2 = conn.request_spot_instances(price=0.5, image_id='ami-abcd1234')
    conn.request_spot_instances(price=0.5, image_id='ami-abcd1234')
    request1[0].add_tag('tag1', 'value1')
    request1[0].add_tag('tag2', 'value2')
    request2[0].add_tag('tag1', 'value1')
    request2[0].add_tag('tag2', 'wrong')
    requests = conn.get_all_spot_instance_requests(filters={'state': 'active'})
    requests.should.have.length_of(0)
    requests = conn.get_all_spot_instance_requests(filters={'state': 'open'})
    requests.should.have.length_of(3)
    requests = conn.get_all_spot_instance_requests(filters={'tag:tag1': 'value1'})
    requests.should.have.length_of(2)
    requests = conn.get_all_spot_instance_requests(filters={'tag:tag1': 'value1', 'tag:tag2': 'value2'})
    requests.should.have.length_of(1)