new_contents: # -*- coding: utf-8 -*-
  
  
  # OpenFisca -- A versatile microsimulation software
  # By: OpenFisca Team <contact@openfisca.fr>
  #
  # Copyright (C) 2011, 2012, 2013, 2014 OpenFisca Team
  # https://github.com/openfisca
  #
  # This file is part of OpenFisca.
  #
  # OpenFisca is free software; you can redistribute it and/or modify
  # it under the terms of the GNU Affero General Public License as
  # published by the Free Software Foundation, either version 3 of the
  # License, or (at your option) any later version.
  #
  # OpenFisca is distributed in the hope that it will be useful,
  # but WITHOUT ANY WARRANTY; without even the implied warranty of
  # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  # GNU Affero General Public License for more details.
  #
  # You should have received a copy of the GNU Affero General Public License
  # along with this program.  If not, see <http://www.gnu.org/licenses/>.
  
  
  import json
  import xml.etree.ElementTree
  
  import openfisca_france
  openfisca_france.init_country()
  
  from openfisca_core import conv, legislations, legislationsxml, model
  
  
  def test_legislation_xml_file():
      legislation_tree = xml.etree.ElementTree.parse(model.PARAM_FILE)
      legislation_xml_json = conv.check(legislationsxml.xml_legislation_to_json)(legislation_tree.getroot(),
          state = conv.default_state)
  
      legislation_xml_json, errors = legislationsxml.validate_node_xml_json(legislation_xml_json,
          state = conv.default_state)
      if errors is not None:
          errors = conv.embed_error(legislation_xml_json, 'errors', errors)
          if errors is None:
              raise ValueError(unicode(json.dumps(legislation_xml_json, ensure_ascii = False,
                  indent = 2)).encode('utf-8'))
          raise ValueError(u'{0} for: {1}'.format(
              unicode(json.dumps(errors, ensure_ascii = False, indent = 2, sort_keys = True)),
              unicode(json.dumps(legislation_xml_json, ensure_ascii = False, indent = 2)),
              ).encode('utf-8'))
  
      legislation_json = legislationsxml.transform_node_xml_json_to_json(legislation_xml_json)
  
      legislation_json, errors = legislations.validate_node_json(legislation_json, state = conv.default_state)
      if errors is not None:
          errors = conv.embed_error(legislation_json, 'errors', errors)
          if errors is None:
              raise ValueError(unicode(json.dumps(legislation_json, ensure_ascii = False, indent = 2)).encode('utf-8'))
          raise ValueError(u'{0} for: {1}'.format(
              unicode(json.dumps(errors, ensure_ascii = False, indent = 2, sort_keys = True)),
              unicode(json.dumps(legislation_json, ensure_ascii = False, indent = 2)),
              ).encode('utf-8'))
  
subject: Add test to validate legislative parameters in XML and JSON format.