old_contents: # -*- coding: utf-8 -*-
  
  import os
  from click.testing import CliRunner
  
  from sigal import init
  from sigal import serve
  
  
  def test_init(tmpdir):
      config_file = str(tmpdir.join('sigal.conf.py'))
      runner = CliRunner()
      result = runner.invoke(init, [config_file])
      assert result.exit_code == 0
      assert result.output.startswith('Sample config file created:')
      assert os.path.isfile(config_file)
  
      result = runner.invoke(init, [config_file])
      assert result.exit_code == 1
      assert result.output == ("Found an existing config file, will abort to "
                               "keep it safe.\n")
  
  
  def test_serve(tmpdir):
      config_file = str(tmpdir.join('sigal.conf.py'))
      runner = CliRunner()
      result = runner.invoke(init, [config_file])
      assert result.exit_code == 0
  
      result = runner.invoke(serve)
      assert result.exit_code == 2
  
      result = runner.invoke(serve, ['-c', config_file])
      assert result.exit_code == 1
  
new_contents: # -*- coding: utf-8 -*-
  
  import os
  from click.testing import CliRunner
  
  from sigal import init
  from sigal import serve
  from sigal import set_meta
  
  
  def test_init(tmpdir):
      config_file = str(tmpdir.join('sigal.conf.py'))
      runner = CliRunner()
      result = runner.invoke(init, [config_file])
      assert result.exit_code == 0
      assert result.output.startswith('Sample config file created:')
      assert os.path.isfile(config_file)
  
      result = runner.invoke(init, [config_file])
      assert result.exit_code == 1
      assert result.output == ("Found an existing config file, will abort to "
                               "keep it safe.\n")
  
  
  def test_serve(tmpdir):
      config_file = str(tmpdir.join('sigal.conf.py'))
      runner = CliRunner()
      result = runner.invoke(init, [config_file])
      assert result.exit_code == 0
  
      result = runner.invoke(serve)
      assert result.exit_code == 2
  
      result = runner.invoke(serve, ['-c', config_file])
      assert result.exit_code == 1
  
  def test_set_meta(tmpdir):
  
      testdir = tmpdir.mkdir("test")
  
      testfile = tmpdir.join("test.jpg")
      testfile.write("")
  
      runner = CliRunner()
      result = runner.invoke(set_meta, [str(testdir), "title", "testing"])
  
      assert result.exit_code == 0
      assert result.output.startswith("1 metadata key(s) written to")
      assert os.path.isfile(str(testdir.join("index.md")))
      assert testdir.join("index.md").read() == "Title: testing\n"
  
      # Run again, should give file exists error
      result = runner.invoke(set_meta, [str(testdir), "title", "testing"])
      assert result.exit_code == 2
  
      result = runner.invoke(set_meta, [str(testdir.join("non-existant.jpg")), "title", "testing"])
      assert result.exit_code == 1
  
      result = runner.invoke(set_meta, [str(testfile), "title", "testing"])
  
      assert result.exit_code == 0
      assert result.output.startswith("1 metadata key(s) written to")
      assert os.path.isfile(str(tmpdir.join("test.md")))
      assert tmpdir.join("test.md").read() == "Title: testing\n"
  
subject: Add test for set_meta command.