new_contents: import os
  import pytest
  import zipfile
  from thefuck.rules.dirty_unzip import match, get_new_command, side_effect
  from tests.utils import Command
  
  
  @pytest.fixture
  def zip_error(tmpdir):
      path = os.path.join(str(tmpdir), 'foo.zip')
  
      def reset(path):
          with zipfile.ZipFile(path, 'w') as archive:
              archive.writestr('a', '1')
              archive.writestr('b', '2')
              archive.writestr('c', '3')
  
              archive.extractall()
  
      os.chdir(str(tmpdir))
      reset(path)
  
      assert(set(os.listdir('.')) == {'foo.zip', 'a', 'b', 'c'})
  
  
  @pytest.mark.parametrize('script', [
      'unzip foo',
      'unzip foo.zip'])
  def test_match(zip_error, script):
      assert match(Command(script=script), None)
  
  
  @pytest.mark.parametrize('script', [
      'unzip foo',
      'unzip foo.zip'])
  def test_side_effect(zip_error, script):
      side_effect(Command(script=script), None)
      assert(os.listdir('.') == ['foo.zip'])
  
  
  @pytest.mark.parametrize('script,fixed', [
      ('unzip foo', 'unzip foo -d foo'),
      ('unzip foo.zip', 'unzip foo.zip -d foo')])
  def test_get_new_command(zip_error, script, fixed):
      assert get_new_command(Command(script=script), None) == fixed
  
subject: Add tests for the `dirty_unzip` rule