old_contents: from unittest2 import TestCase
  
  from pelican.contents import Page
  from pelican.settings import _DEFAULT_CONFIG
  
  class TestPage(TestCase):
  
      def test_use_args(self):
          # creating a page with arguments passed to the connstructor should use
          # them to initialise object's attributes
          metadata = {'foo': 'bar', 'foobar': 'baz'}
          page = Page('content', metadata=metadata)
          for key, value in metadata.items():
              self.assertTrue(hasattr(page, key))
              self.assertEqual(value, getattr(page, key))
          self.assertEqual(page.content, "content")
  
      def test_mandatory_properties(self):
          # if the title is not set, must throw an exception
          page = Page('content')
          with self.assertRaises(NameError) as cm:
              page.check_properties()
  
          page = Page('content', metadata={'title': 'foobar'})
          page.check_properties()
  
      def test_slug(self):
          # if a title is given, it should be used to generate the slug
          page = Page('content', {'title': 'foobar is foo'})
          self.assertEqual(page.slug, 'foobar-is-foo')
  
      def test_defaultlang(self):
          # if no lang is given, default to the default one
          page = Page('content')
          self.assertEqual(page.lang, _DEFAULT_CONFIG['DEFAULT_LANG'])
  
          # it is possible to specify the lang in the metadata infos
          page = Page('content', {'lang': 'fr'})
          self.assertEqual(page.lang, 'fr')
  
      def test_save_as(self):
          # if a lang is not the default lang, save_as should be set accordingly
          page = Page('content', {'title': 'foobar', 'lang': 'fr'}) #default lang is en
          self.assertEqual(page.save_as, "foobar-fr.html")
  
          # otherwise, if a title is defined, save_as should be set
          page = Page('content', {'title': 'foobar'})
          page.save_as = 'foobar.html'
  
          # if no title is given, there is no save_as
          page = Page('content')
          self.assertFalse(hasattr(page, 'save_as'))
  
new_contents: from __future__ import with_statement
  from unittest2 import TestCase
  
  from pelican.contents import Page
  from pelican.settings import _DEFAULT_CONFIG
  
  class TestPage(TestCase):
  
      def test_use_args(self):
          # creating a page with arguments passed to the connstructor should use
          # them to initialise object's attributes
          metadata = {'foo': 'bar', 'foobar': 'baz'}
          page = Page('content', metadata=metadata)
          for key, value in metadata.items():
              self.assertTrue(hasattr(page, key))
              self.assertEqual(value, getattr(page, key))
          self.assertEqual(page.content, "content")
  
      def test_mandatory_properties(self):
          # if the title is not set, must throw an exception
          page = Page('content')
          with self.assertRaises(NameError) as cm:
              page.check_properties()
  
          page = Page('content', metadata={'title': 'foobar'})
          page.check_properties()
  
      def test_slug(self):
          # if a title is given, it should be used to generate the slug
          page = Page('content', {'title': 'foobar is foo'})
          self.assertEqual(page.slug, 'foobar-is-foo')
  
      def test_defaultlang(self):
          # if no lang is given, default to the default one
          page = Page('content')
          self.assertEqual(page.lang, _DEFAULT_CONFIG['DEFAULT_LANG'])
  
          # it is possible to specify the lang in the metadata infos
          page = Page('content', {'lang': 'fr'})
          self.assertEqual(page.lang, 'fr')
  
      def test_save_as(self):
          # if a lang is not the default lang, save_as should be set accordingly
          page = Page('content', {'title': 'foobar', 'lang': 'fr'}) #default lang is en
          self.assertEqual(page.save_as, "foobar-fr.html")
  
          # otherwise, if a title is defined, save_as should be set
          page = Page('content', {'title': 'foobar'})
          page.save_as = 'foobar.html'
  
          # if no title is given, there is no save_as
          page = Page('content')
          self.assertFalse(hasattr(page, 'save_as'))
  
subject: test works with python2.5