Exemplo n.º 1
0
class LinklistTest(unittest.TestCase):
    
    def setUp(self):
        self.linklistInstance=LinklistAdaptor()
        debugMock=Mock()
        settings=Settings()
        self.linklistInstance.debug=debugMock
        self.linklistInstance.settings=settings
        self.linklistPath="/media/KINGSTON/Sumid/linklist/prelinklist25.txt"
        
    def tearDown(self):
        self.linklistInstance=None
        

    def test_nextRaw_noLinklist(self):
        """ If there's no linklist connected, nextRaw raises error."""
        # Suppose thers's no linlist until I connect it.
        self.assertRaises(BufferError,self.linklistInstance.nextRaw)
        self.linklistInstance.linklist=None
        self.assertRaises(BufferError,self.linklistInstance.nextRaw,)
        
    def test_nextRaw_correctLinklist(self):
        """ nextRaw returns a line without any modification, when linklist is set correctly. """
        #linklistPath="/media/KINGSTON/Sumid/linklist/prelinklist25.txt"
        # First peek what is first line of the linklist.
        linklistFile=file(self.linklistPath,'r')
        firstLine=linklistFile.readline()
        linklistFile.close()
        # Set-up URL linklist for test.
        linklistURL="file://%s"%(self.linklistPath)
        linklistFile=urllib2.urlopen(linklistURL)
        self.linklistInstance.connectLinklistFile(linklistFile)
        line=self.linklistInstance.nextRaw()
        # The URL test.
        self.assertEqual(firstLine,line)
        # Set-up file linklist for test.
        linklistFile=file(self.linklistPath,'r')
        self.linklistInstance.connectLinklistFile(linklistFile)
        line=self.linklistInstance.nextRaw()
        #The file test
        self.assertEqual(firstLine,line)
        
    def test_connectLinklistFile_wrongInput(self):
        """ If the input of connectLinklistFile() is not a file-like object, exception is raised."""
        self.assertRaises(AttributeError,self.linklistInstance.connectLinklistFile,"/This/is/a/string")
        self.assertRaises(AttributeError,self.linklistInstance.connectLinklistFile,["This","is","a","list"])
        self.assertRaises(AttributeError,self.linklistInstance.connectLinklistFile,{"This":"is","a":"dict"})
        self.assertRaises(AttributeError,self.linklistInstance.connectLinklistFile,object())
        
    def test_connectLinklistFile_correctInput(self):
        """ If the input of connectLinklistFile() is a file-like object, then self.linklist link to it is created. """
        #linklistPath="/media/KINGSTON/Sumid/linklist/prelinklist25.txt"
        linklistURL="file://%s"%(self.linklistPath)
        linklistFile=urllib2.urlopen(linklistURL)
        self.linklistInstance.connectLinklistFile(linklistFile)
        self.assertEqual(self.linklistInstance.linklist.geturl(),linklistURL)
        linklistFile=file(self.linklistPath,'r')
        self.linklistInstance.connectLinklistFile(linklistFile)
        self.assertEqual(self.linklistInstance.linklist.name,self.linklistPath)