import sys
import os
if __name__ == '__main__':
    pkg_dir = os.path.split(os.path.abspath(__file__))[0]
    parent_dir, pkg_name = os.path.split(pkg_dir)
    is_pygame_pkg = (pkg_name == 'tests' and
                     os.path.split(parent_dir)[1] == 'pygame')
    if not is_pygame_pkg:
        sys.path.insert(0, parent_dir)
else:
    is_pygame_pkg = __name__.startswith('pygame.tests.')

if is_pygame_pkg:
    from pygame.tests.test_utils import test_not_implemented, unittest, \
                                        geterror
else:
    from test.test_utils import test_not_implemented, unittest, geterror
import pygame


class FontTest(unittest.TestCase):
    def setUp(self):
        pygame.init()

    def tearDown(self):
        pygame.quit()

    def test_render_args(self):
        screen = pygame.display.set_mode((600, 400))
        rect = screen.get_rect()
        f = pygame.font.Font(None, 20)
        screen.fill((10, 10, 10))
        font_surface = f.render("   bar", True, (0, 0, 0), (255, 255, 255))
        font_rect = font_surface.get_rect()
        font_rect.topleft = rect.topleft
        self.assertTrue(font_surface)
        screen.blit(font_surface, font_rect, font_rect)
        pygame.display.update()
        self.assertEqual(tuple(screen.get_at((0,0)))[:3], (255, 255, 255))        
        self.assertEqual(tuple(screen.get_at(font_rect.topleft))[:3], (255, 255, 255))        
        screen.fill((10, 10, 10))
        font_surface = f.render("   bar", True, (0, 0, 0), None)
        font_rect = font_surface.get_rect()
        font_rect.topleft = rect.topleft
        self.assertTrue(font_surface)
        screen.blit(font_surface, font_rect, font_rect)
        pygame.display.update()
        self.assertEqual(tuple(screen.get_at((0,0)))[:3], (10, 10, 10))
        self.assertEqual(tuple(screen.get_at(font_rect.topleft))[:3], (10, 10, 10))        
        screen.fill((10, 10, 10))
        font_surface = f.render("   bar", True, (0, 0, 0))
        font_rect = font_surface.get_rect()
        font_rect.topleft = rect.topleft
        self.assertTrue(font_surface)
        screen.blit(font_surface, font_rect, font_rect)
        pygame.display.update(rect)
        self.assertEqual(tuple(screen.get_at((0,0)))[:3], (10, 10, 10))
        self.assertEqual(tuple(screen.get_at(font_rect.topleft))[:3], (10, 10, 10))


if __name__ == '__main__':
    unittest.main()
