Пример #1
0
def TestOneInput(input_bytes):
    # We need to make the file an absolute path
    testfile_path = os.path.join(os.getcwd(), "testfile.tmp")
    with open(testfile_path, "wb") as f:
        f.write(input_bytes)

    # Test basic Mime API
    Mime.get_type2(testfile_path)
    Mime.get_type_by_contents(testfile_path)
    Mime.get_type_by_data(input_bytes)

    # Test GlobDB
    globs = Mime.GlobDB()
    try:
        globs.merge_file(testfile_path)
        globs.merge_file(testfile_path)
    except UnicodeError as e:
        pass
    except ValueError as e:
        if ("not enough values to unpack" in str(e)
                or "invalid literal for int" in str(e)):
            pass
        else:
            raise e

    # Test MagicDB
    magic = Mime.MagicDB()
    try:
        magic.merge_file(testfile_path)
        magic.finalise()
    except UnicodeDecodeError:
        pass
    except (OSError, ValueError) as e:
        msg = str(e)
        if ("Not a MIME magic file" in msg
                or "Malformed section heading" in msg):
            pass
        else:
            raise e

    # Cleanup
    os.remove(testfile_path)
Пример #2
0
    def test_parsing(self):
        p1 = os.path.join(self.tmpdir, 'globs2a')
        with open(p1, 'w') as f:
            f.write(resources.mime_globs2_a)

        p2 = os.path.join(self.tmpdir, 'globs2b')
        with open(p2, 'w') as f:
            f.write(resources.mime_globs2_b)

        globs = Mime.GlobDB()
        globs.merge_file(p1)
        globs.merge_file(p2)

        ag = globs.allglobs
        self.assertEqual(ag[_l('text', 'x-diff')],
                         set([(55, '*.patch', ()), (50, '*.diff', ())]))
        self.assertEqual(ag[_l('text', 'x-c++src')],
                         set([(50, '*.C', ('cs', ))]))
        self.assertEqual(ag[_l('text', 'x-readme')],
                         set([(20, 'RDME', ('cs', ))]))
        assert _l('text', 'x-python') not in ag, ag
Пример #3
0
 def setUp(self):
     self.globs = Mime.GlobDB()
     self.globs.allglobs = self.allglobs
     self.globs.finalise()