=========
Year
=========

All necessary components are set up in the testclass to make sure that
we test the real configuration. Let's test the Widget:

  >>> import datetime
  >>> import z3c.form
  >>> import zope.schema
  >>> from plone.formwidget.datetime.z3cform import YearFieldWidget

  >>> request = self.testrequest()
  >>> field = zope.schema.Date(default=datetime.date(2007, 4, 2))
  >>> widget = YearFieldWidget(field, request)
  >>> widget.id = 'foo'
  >>> widget.name = 'bar'
  >>> widget.update()
  >>> widget.extract() is z3c.form.interfaces.NOVALUE
  True


INPUT_MODE
----------

  >>> print widget.render()
  <BLANKLINE>
  <BLANKLINE>
  <!-- day -->
  <input type="hidden" id="foo-day" value="2" name="bar-day" />
  <BLANKLINE>
  <BLANKLINE>
  <BLANKLINE>
  <!-- month -->
  <input type="hidden" id="foo-month" value="4"
         name="bar-month" />
  <BLANKLINE>
  <BLANKLINE>
  <BLANKLINE>
  <BLANKLINE>
  <!-- year -->
  <select class="year year-widget required date-field" id="foo-year" name="bar-year">
    <option value="1997">1997</option>
    <option value="1998">1998</option>
    <option value="1999">1999</option>
    <option value="2000">2000</option>
    <option value="2001">2001</option>
    <option value="2002">2002</option>
    <option value="2003">2003</option>
    <option value="2004">2004</option>
    <option value="2005">2005</option>
    <option value="2006">2006</option>
    <option selected="selected" value="2007">2007</option>
    <option value="2008">2008</option>
    <option value="2009">2009</option>
    <option value="2010">2010</option>
    <option value="2011">2011</option>
    <option value="2012">2012</option>
    <option value="2013">2013</option>
    <option value="2014">2014</option>
    <option value="2015">2015</option>
    <option value="2016">2016</option>
  </select>
  ...

  >>> widget.request = self.testrequest(
  ...     form={
  ...           'bar-year': '2007',
  ...           'bar-day': '1',
  ...           'bar-month': '1',
  ...           'bar-empty-marker': '1',
  ...           }
  ...     )
  >>> widget.extract()
  ('2007', '1', '1')


DISPLAY_MODE
------------

  >>> widget.mode = z3c.form.interfaces.DISPLAY_MODE
  >>> print widget.render()
  <span id="foo" class="year-widget required date-field">2007</span>

HIDDEN_MODE
-----------

  >>> widget.mode = z3c.form.interfaces.HIDDEN_MODE
  >>> print widget.render()
  <BLANKLINE>
  <input type="hidden" name="bar" value="2007" id="foo"
         class="year-widget required date-field" />
  <BLANKLINE>
  <BLANKLINE>

  >>> widget.request = self.testrequest(
  ...     form={'bar-year': '2007',
  ...           'bar-day': '6',
  ...           'bar-month': '5',
  ...      }
  ...     )
  >>> widget.extract()
  ('2007', '5', '6')
  >>> widget.request = self.testrequest(
  ...     form={'bar-year': '2007',
  ...      }
  ...     )
  >>> widget.extract()
  ('2007', '1', '1')


