예제 #1
0
 def testParseStyleData(self):
     """Test parsing Editra Style Sheets"""
     # Test valid style sheet
     data = common.GetFileContents(self.stylesheet)
     styledict = self.mgr.ParseStyleData(data)
     for tag, item in styledict.iteritems():
         self.assertTrue(isinstance(tag, types.UnicodeType),
                         "%s Is not Unicode!" % tag)
         self.assertTrue(isinstance(item, ed_style.StyleItem))
     # Test loading sheet with malformed data
     sheet_path = common.GetDataFilePath('incorrect_syntax.ess')
     data = common.GetFileContents(sheet_path)
     styledict2 = self.mgr.ParseStyleData(data)
     self.assertTrue(len(styledict) > len(styledict2))
     for tag, item in styledict2.iteritems():
         self.assertTrue(isinstance(tag, types.UnicodeType),
                         "%s Is not Unicode!" % tag)
         self.assertTrue(isinstance(item, ed_style.StyleItem))
     # Test stylesheet that is all on one line
     sheet_path = common.GetDataFilePath('one_liner.ess')
     data = common.GetFileContents(sheet_path)
     styledict3 = self.mgr.ParseStyleData(data)
     for tag, item in styledict3.iteritems():
         self.assertTrue(isinstance(tag, types.UnicodeType),
                         "%s Is not Unicode!" % tag)
         self.assertTrue(isinstance(item, ed_style.StyleItem))
예제 #2
0
    def setUp(self):
        self.path = common.GetDataFilePath(u'syntax.xml')
        self.bad = common.GetDataFilePath(u'bad.xml')
        self.xml = common.GetFileContents(self.path)
        self.badxml = common.GetFileContents(self.bad)

        self.fhandle = syntax.SyntaxModeHandler(self.path)
        self.fhandle.LoadFromDisk()
예제 #3
0
 def testValidateBuiltinStyleSheets(self):
     """Validate formatting and parsing of all builtin style sheets"""
     sdir = common.GetStylesDir()
     for sheet in [
             os.path.join(sdir, f) for f in os.listdir(sdir)
             if f.endswith('.ess')
     ]:
         data = common.GetFileContents(sheet)
         styledict = self.mgr.ParseStyleData(data)
         styledict = self.mgr.PackStyleSet(styledict)
         for tag, item in styledict.iteritems():
             self.doValidateColourAttrs(tag, item)
             mods = item.GetModifierList()
             if len(mods):
                 for mod in mods:
                     self.assertTrue(mod in ('eol', 'bold', 'italic',
                                             'underline'))
             isize = item.GetSize()
             if len(isize
                    ):  # Null items such as select_style dont set this attr
                 self.assertTrue(
                     isize.isdigit()
                     or (isize.startswith("%(") and isize.endswith(")d")),
                     "Bad font size specification %s:%s:%s" %
                     (sheet, tag, repr(isize)))
예제 #4
0
    def testWriteUTF16File(self):
        """Test that input and output bytes match"""
        txt = self.file_utf16.Read()
        self.assertTrue(type(txt) == types.UnicodeType)

        # Get original raw bytes
        raw_bytes = common.GetFileContents(self.file_utf16.GetPath())

        # Write the unicode back out to disk
        out = common.GetTempFilePath('utf_16_output.txt')
        self.file_utf16.SetPath(out)
        self.file_utf16.Write(txt)

        # Get raw bytes that were just written
        new_bytes = common.GetFileContents(out)
        self.assertEquals(raw_bytes, new_bytes)
예제 #5
0
 def testValidateColourData(self):
     """Validate that colour data is getting parsed correctly"""
     sheet_path = common.GetDataFilePath('old_format.ess')
     data = common.GetFileContents(sheet_path)
     styledict = self.mgr.ParseStyleData(data)
     styledict = self.mgr.PackStyleSet(styledict)
     for tag, item in styledict.iteritems():
         self.doValidateColourAttrs(tag, item)
예제 #6
0
 def testParseStyleData(self):
     """Test parsing Editra Style Sheets"""
     data = common.GetFileContents(self.stylesheet)
     styledict = self.mgr.ParseStyleData(data)
     for tag, item in styledict.iteritems():
         self.assertTrue(isinstance(tag, types.UnicodeType),
                         "%s Is not Unicode!" % tag)
         self.assertTrue(isinstance(item, ed_style.StyleItem))
예제 #7
0
 def testBackupWithHeader(self):
     """Tests using the backup file header identifier option"""
     bkup = ebmlib.FileBackupMgr("SuperHeader", u"%s~")
     path = common.MakeTempFile("test_header.txt")
     self.assertTrue(bkup.MakeBackupCopy(path))
     bkupf = bkup.GetBackupFilename(path)
     self.assertTrue(os.path.exists(bkupf), "Invalid path: %s" % bkupf)
     txt = common.GetFileContents(bkupf)
     self.assertTrue(txt.startswith("SuperHeader"))
예제 #8
0
    def testWriteUTF16File(self):
        """Test that input and output bytes match"""
        fobj = ed_txt.EdFile(self.path_utf16)
        txt = fobj.Read()
        self.assertTrue(type(txt) == types.UnicodeType)
        self.assertTrue(fobj.Encoding in ('utf-16', 'utf_16'))
        self.assertFalse(fobj.HasBom())  # test file has no BOM

        # Get original raw bytes
        raw_bytes = common.GetFileContents(fobj.GetPath())

        # Write the unicode back out to disk
        out = common.GetTempFilePath('utf_16_output.txt')
        fobj.SetPath(out)
        self.assertFalse(fobj.HasBom())  # test file has no BOM
        fobj.Write(txt)

        # Get raw bytes that were just written
        new_bytes = common.GetFileContents(out)
        self.assertEquals(raw_bytes, new_bytes)
예제 #9
0
 def testPackStyleSet(self):
     """Test packing an incomplete style set"""
     ## TEST 1 - loading and packing sheet that does not define comment_style
     data = common.GetFileContents(self.stylesheet)
     styledict = self.mgr.ParseStyleData(data)
     self.assertTrue('comment_style' not in styledict)
     default = styledict.get('default_style')
     self.assertTrue(isinstance(default, ed_style.StyleItem))
     # Pack the Style Set
     styledict = self.mgr.PackStyleSet(styledict)
     self.assertTrue('comment_style' in styledict)
     whitestyle = styledict.get('comment_style')
     self.assertTrue(whitestyle == default)