def test_complete_attributes(self):
        """ Test preset complete function

        """
        colorspace = REC709
        outlutfile = os.path.join(self.tmp_dir, "default_ascii_1D.lut")
        default_preset = ASCII_HELPER.get_default_preset()
        cust_preset = {}
        cust_preset = ASCII_HELPER.complete_preset(cust_preset)
        expression = set(default_preset).issubset(set(cust_preset))
        self.assert_(expression,
                     ("Something went wrong in preset completion :\n"
                      "Completed preset:\n{0}\nDefault one:\n{1}"
                      ).format(cust_preset, default_preset))
        ASCII_HELPER.check_preset(cust_preset)
        # try to write a float ascii lut without forcing float mode
        cust_preset[presets.IN_RANGE] = [0, 1.0]
        self.failUnlessRaises(PresetException, ASCII_HELPER.write_1d_lut,
                              colorspace.decode_gradation,
                              outlutfile,
                              cust_preset)
        # force float mode
        cust_preset[presets.IS_FLOAT] = True
        ASCII_HELPER.write_1d_lut(colorspace.decode_gradation,
                                  outlutfile,
                                  cust_preset)
    def test_ascii_lut(self):
        """ Test ascii 1D / 2D export

        """
        colorspace = REC709
        # 2D LUT
        outlutfile = os.path.join(self.tmp_dir, "default_2D.lut")
        preset = ASCII_HELPER.get_default_preset()
        ASCII_HELPER.write_2d_lut(colorspace.decode_gradation,
                                  outlutfile,
                                  preset)
        # 1D LUT
        outlutfile = os.path.join(self.tmp_dir, "default_1D.lut")
        preset = ASCII_HELPER.get_default_preset()
        ASCII_HELPER.write_1d_lut(colorspace.decode_gradation,
                                  outlutfile,
                                  preset)
        # test out bit depth inadequate with output range
        preset[OUT_BITDEPTH] = 12
        self.failUnlessRaises(AsciiHelperException, ASCII_HELPER.write_1d_lut,
                              colorspace.decode_gradation, outlutfile, preset)