Beispiel #1
0
 def testSingleEntityAndSubEntitySpecific(self):
     
     class BlueMarble(Entity):
         BLUE_SPECK = ['blueSpeck', Button]
     
     es = Searcher()
     es.add(MultiResultProxy(None, [BlueMarble], None))
     
     result = es.search("blue marble")
     self.assertEqual(result.getEntity(), [BlueMarble])        
Beispiel #2
0
    def testSingleEntityAndSubEntityDefAmbiguous(self):
        

        class BlueMarble(Entity):
            BLUE_SPECK = ['blueSpeck', Button]        

        es = Searcher()
        es.add(MultiResultProxy(None, [BlueMarble], None))
        
        self.assertRaises(AmbiguousKeySearchException, es.search, "blue")
Beispiel #3
0
 def testPassingProxyInvalidKeyRaisesException(self):
     
     class RedMarble(Entity):
         SPECK = ['speck', Button]
         
     class BlueMarble(Entity):
         SPECK = ['speck', Button]         
     
     proxy = MultiResultProxy(None, [RedMarble, BlueMarble], None)
       
     # Passing an invalid key will return raise an EntityNotFound exception
     self.assertRaises(Exception, proxy.__getitem__, ['failEntity',Button])
Beispiel #4
0
    def testMultiSearchSubEntityAmbiguous(self):
        
        class BlueMarble(Entity):
            BLUE_SPECK = ['blueSpeck', Button]

        class RedMarble(Entity):
            RED_SPECK = ['redSpeck', Button]

        
        es = Searcher()
        es.add(MultiResultProxy(None, [BlueMarble, RedMarble], None))
        
        self.assertRaises(AmbiguousKeySearchException, es.search, "speck") 
Beispiel #5
0
    def testFindClassFromAmbiguousKeyReturnsError(self):

        class RedMarble(Entity):
            SPECK = ['speck', Button]
            
        class BlueMarble(Entity):
            SPECK = ['speck', Button]            

        
        proxy = MultiResultProxy(None, [RedMarble, BlueMarble], None)
                
        # Make sure finding a class from ambiguous key raises exception
        self.assertRaises(Exception, proxy.__getitem__, RedMarble.SPECK)
        self.assertRaises(Exception, proxy.__getitem__, BlueMarble.SPECK)
Beispiel #6
0
    def testCanSearchMultiProxyResultWithCustomParent(self):
        
        class BlueMarble(Entity):
            BLUE_SPECK = ['blueSpeck', Button]

        class RedMarble(Entity):
            RED_SPECK = ['redSpeck', Button]

        customParent = RedMarble(None)
                
        es = Searcher()
        es.add(MultiResultProxy(None, [(BlueMarble, customParent),], None))
        
        result = es.search("blue speck")
        self.assertEqual(result.getEntity(), BlueMarble.BLUE_SPECK)
        self.assertEqual(result.getParent(), customParent)               
Beispiel #7
0
    def testMultiSearchSubEntitySpecific(self):
        
        class BlueMarble(Entity):
            BLUE_SPECK = ['blueSpeck', Button]

        class RedMarble(Entity):
            RED_SPECK = ['redSpeck', Button]

        
        es = Searcher()
        es.add(MultiResultProxy(None, [BlueMarble, RedMarble], None))
        
        result = es.search("red speck")
        self.assertEqual(result.getEntity(), RedMarble.RED_SPECK)   

        result = es.search("blue speck")
        self.assertEqual(result.getEntity(), BlueMarble.BLUE_SPECK)       
Beispiel #8
0
    def testFindClassFromKey(self):

        class RedMarble(Entity):
            RED_SPECK = ['redSpeck', Button]
            
        class BlueMarble(Entity):
            BLUE_SPECK = ['blueSpeck', Button]            

        proxy = MultiResultProxy(None, [RedMarble, BlueMarble], None)
        
        # Supplying the RED_SPECK keyword will return the RedMarble class that it belongs to
        result = proxy[RedMarble.RED_SPECK]
        self.assertEqual(result.getName(), 'redSpeck')
        
        # Suppling the BLUE_SPEC keyword will return the BlueMarble class that it belongs to
        result = proxy[BlueMarble.BLUE_SPECK]
        self.assertEqual(result.getName(), 'blueSpeck')
Beispiel #9
0
    def testResultParent(self):

        class GreenMarble(Entity):
            GREEN_SPECK = ['greenSpeck', Button]

        class RedMarble(Entity):
            RED_SPECK = ['redSpeck', Button]
            
        class BlueMarble(Entity):
            BLUE_SPECK = ['blueSpeck', Button]            

        proxy = MultiResultProxy(None, [(RedMarble, BlueMarble(None)),(GreenMarble, BlueMarble(None))], None)
        
        result = proxy[RedMarble.RED_SPECK]        
        self.assertEqual(result.getName(), 'redSpeck')
        self.assertEqual(result.getParent().getParent().getName(), 'BlueMarble')
    
        result = proxy[GreenMarble.GREEN_SPECK]        
        self.assertEqual(result.getName(), 'greenSpeck')
        self.assertEqual(result.getParent().getParent().getName(), 'BlueMarble')
Beispiel #10
0
from log.robotFramework import Logger as RobotLogger
from log import *
from entity import Entity
from region.tests.mockFinder import Finder
from log.formatter import Formatter
from config import Config
from entity.searcher import Searcher
from tests.mockTool import Tool
import unittest
from entity.multiResultProxy import MultiResultProxy

Logger.setRobotLogger(RobotLogger())
Logger.setFormatter(Formatter)

Formatter.setTool(Tool)
Formatter.setConfig(Config)

Entity.setLogger(Logger)
Entity.setRegionFinderStrategy(Finder)
Entity.setSearcherStrategy(Searcher)
Entity.setMultiResultProxyStrategy(MultiResultProxy)

MultiResultProxy.setEntitySearcher(Searcher)
from log.robotFramework import Logger as RobotLogger
from log import *
from entity import Entity
from region.tests.mockFinder import Finder
from log.formatter import Formatter
from config import Config
from entity.searcher import Searcher
from tests.mockTool import Tool
import unittest
from entity.multiResultProxy import MultiResultProxy

Logger.setRobotLogger(RobotLogger())
Logger.setFormatter(Formatter)        

Formatter.setTool(Tool)
Formatter.setConfig(Config)

Entity.setLogger(Logger)
Entity.setRegionFinderStrategy(Finder)
Entity.setSearcherStrategy(Searcher)
Entity.setMultiResultProxyStrategy(MultiResultProxy)

MultiResultProxy.setEntitySearcher(Searcher)