Example #1
0
    def test_append_save(self):
        i1 = MockInfo()

        kb.append('a', 'b', i1)
        kb.raw_write('a', 'b', 3)

        self.assertEqual(kb.raw_read('a', 'b'), 3)
Example #2
0
 def test_append_save(self):
     i1 = MockInfo()
     
     kb.append('a', 'b', i1)
     kb.raw_write('a', 'b', 3)
     
     self.assertEqual(kb.raw_read('a', 'b'), 3)
Example #3
0
    def test_pickleable_info(self):
        original_info = MockInfo()

        kb.append('a', 'b', original_info)
        unpickled_info = kb.get('a', 'b')[0]

        self.assertEqual(original_info, unpickled_info)
Example #4
0
 def test_pickleable_vuln(self):
     original_vuln = MockVuln()
     
     kb.append('a', 'b', original_vuln)
     unpickled_vuln = kb.get('a', 'b')[0]
     
     self.assertEqual(original_vuln, unpickled_vuln)
Example #5
0
 def test_pickleable_info(self):
     original_info = MockInfo()
     
     kb.append('a', 'b', original_info)
     unpickled_info = kb.get('a', 'b')[0]
     
     self.assertEqual(original_info, unpickled_info)
Example #6
0
    def test_pickleable_vuln(self):
        original_vuln = MockVuln()

        kb.append('a', 'b', original_vuln)
        unpickled_vuln = kb.get('a', 'b')[0]

        self.assertEqual(original_vuln, unpickled_vuln)
Example #7
0
 def test_observer_all(self):
     observer = Mock()
     
     kb.add_observer(None, None, observer)
     kb.raw_write('a', 'b', 1)
     
     observer.assert_called_once_with('a', 'b', 1)
     observer.reset_mock()
     
     i = MockInfo()
     kb.append('a', 'c', i)
     observer.assert_called_with('a', 'c', i)
Example #8
0
    def test_observer_all(self):
        observer = Mock()

        kb.add_observer(None, None, observer)
        kb.raw_write('a', 'b', 1)

        observer.assert_called_once_with('a', 'b', 1)
        observer.reset_mock()

        i = MockInfo()
        kb.append('a', 'c', i)
        observer.assert_called_with('a', 'c', i)
Example #9
0
 def test_append(self):
     i1 = MockInfo()
     i2 = MockInfo()
     i3 = MockInfo()
     
     kb.append('a', 'b', i1)
     kb.append('a', 'b', i1)
     kb.append('a', 'b', i1)
     kb.append('a', 'b', i2)
     kb.append('a', 'b', i3)
     
     self.assertEqual(kb.get('a', 'b'), [i1, i1, i1, i2, i3])
Example #10
0
    def test_append(self):
        i1 = MockInfo()
        i2 = MockInfo()
        i3 = MockInfo()

        kb.append('a', 'b', i1)
        kb.append('a', 'b', i1)
        kb.append('a', 'b', i1)
        kb.append('a', 'b', i2)
        kb.append('a', 'b', i3)

        self.assertEqual(kb.get('a', 'b'), [i1, i1, i1, i2, i3])
Example #11
0
    def test_save_append(self):
        '''
        Although calling raw_write and then append is highly discouraged,
        someone would want to use it.
        '''
        i0 = MockInfo()
        self.assertRaises(TypeError, kb.raw_write, 'a', 'b', i0)

        i1 = MockInfo()
        i2 = MockInfo()
        kb.append('a', 'b', i1)
        kb.append('a', 'b', i2)

        self.assertEqual(kb.get('a', 'b'), [i1, i2])
Example #12
0
 def test_save_append(self):
     '''
     Although calling raw_write and then append is highly discouraged,
     someone would want to use it.
     '''
     i0 = MockInfo()
     self.assertRaises(TypeError, kb.raw_write, 'a', 'b', i0)
     
     i1 = MockInfo()
     i2 = MockInfo()
     kb.append('a', 'b', i1)
     kb.append('a', 'b', i2)
     
     self.assertEqual(kb.get('a', 'b'), [i1, i2])
Example #13
0
    def test_get_by_uniq_id_duplicated_ignores_second(self):
        '''
        TODO: Analyze this case, i1 and i2 have both the same ID because they
              have all the same information (this is very very uncommon in a
              real w3af run).
              
              Note that in the get_by_uniq_id call i2 is not returned.
        '''
        i1 = MockInfo()
        i2 = MockInfo()
        kb.append('a', 'b', i1)
        kb.append('a', 'b', i2)

        i1_copy = kb.get_by_uniq_id(i1.get_uniq_id())
        self.assertEqual(i1_copy, i1)
Example #14
0
 def test_get_by_uniq_id_duplicated_ignores_second(self):
     '''
     TODO: Analyze this case, i1 and i2 have both the same ID because they
           have all the same information (this is very very uncommon in a
           real w3af run).
           
           Note that in the get_by_uniq_id call i2 is not returned.
     '''
     i1 = MockInfo()
     i2 = MockInfo()
     kb.append('a', 'b', i1)
     kb.append('a', 'b', i2)
     
     i1_copy = kb.get_by_uniq_id(i1.get_uniq_id())
     self.assertEqual(i1_copy, i1)
Example #15
0
    def test_pickleable_shells(self):
        pool = Pool(1)
        xurllib = ExtendedUrllib()

        original_shell = Shell(MockVuln(), xurllib, pool)

        kb.append('a', 'b', original_shell)
        unpickled_shell = kb.get('a', 'b')[0]

        self.assertEqual(original_shell, unpickled_shell)
        self.assertEqual(unpickled_shell.worker_pool, None)
        self.assertEqual(unpickled_shell._uri_opener, None)

        pool.terminate()
        pool.join()
Example #16
0
 def test_pickleable_shells(self):
     pool = Pool(1)
     xurllib = ExtendedUrllib()
     
     original_shell = Shell(MockVuln(), xurllib, pool)
     
     kb.append('a', 'b', original_shell)
     unpickled_shell = kb.get('a', 'b')[0]
     
     self.assertEqual(original_shell, unpickled_shell)
     self.assertEqual(unpickled_shell.worker_pool, None)
     self.assertEqual(unpickled_shell._uri_opener, None)
     
     pool.terminate()
     pool.join()
Example #17
0
 def test_observer_location_b(self):
     observer = Mock()
     
     kb.add_observer('a', 'b', observer)
     kb.raw_write('a', 'b', 1)
     
     observer.assert_called_once_with('a', 'b', 1)
     observer.reset_mock()
     
     # Shouldn't call the observer
     kb.raw_write('a', 'xyz', 1)
     self.assertFalse(observer.called)
     
     i = MockInfo()
     kb.append('a', 'b', i)
     observer.assert_called_with('a', 'b', i)
Example #18
0
    def test_observer_location_b(self):
        observer = Mock()

        kb.add_observer('a', 'b', observer)
        kb.raw_write('a', 'b', 1)

        observer.assert_called_once_with('a', 'b', 1)
        observer.reset_mock()

        # Shouldn't call the observer
        kb.raw_write('a', 'xyz', 1)
        self.assertFalse(observer.called)

        i = MockInfo()
        kb.append('a', 'b', i)
        observer.assert_called_with('a', 'b', i)
Example #19
0
    def test_pickleable_shells_get_all(self):
        class FakeCore(object):
            worker_pool = Pool(1)
            uri_opener = ExtendedUrllib()

        core = FakeCore()
        original_shell = Shell(MockVuln(), core.uri_opener, core.worker_pool)

        kb.append('a', 'b', original_shell)
        unpickled_shell = list(kb.get_all_shells(core))[0]

        self.assertEqual(original_shell, unpickled_shell)
        self.assertEqual(unpickled_shell.worker_pool, core.worker_pool)
        self.assertEqual(unpickled_shell._uri_opener, core.uri_opener)

        core.worker_pool.terminate()
        core.worker_pool.join()
Example #20
0
 def test_pickleable_shells_get_all(self):
     class FakeCore(object):
         worker_pool = Pool(1)
         uri_opener = ExtendedUrllib()
     
     core = FakeCore()
     original_shell = Shell(MockVuln(), core.uri_opener, core.worker_pool)
     
     kb.append('a', 'b', original_shell)
     unpickled_shell = list(kb.get_all_shells(core))[0]
     
     self.assertEqual(original_shell, unpickled_shell)
     self.assertEqual(unpickled_shell.worker_pool, core.worker_pool)
     self.assertEqual(unpickled_shell._uri_opener, core.uri_opener)
     
     core.worker_pool.terminate()
     core.worker_pool.join()
Example #21
0
    def test_types_observer(self):
        observer = Mock()
        info_inst = MockInfo()

        kb.add_types_observer(Info, observer)
        kb.append('a', 'b', info_inst)
        observer.assert_called_once_with('a', 'b', info_inst)
        observer.reset_mock()

        info_inst = MockInfo()
        kb.append('a', 'c', info_inst)
        observer.assert_called_with('a', 'c', info_inst)
        observer.reset_mock()

        # Should NOT call it because it is NOT an Info instance
        some_int = 3
        kb.raw_write('a', 'd', some_int)
        self.assertEqual(observer.call_count, 0)
Example #22
0
    def test_types_observer(self):
        observer = Mock()
        info_inst = MockInfo()
        
        kb.add_types_observer(Info, observer)
        kb.append('a', 'b', info_inst)
        observer.assert_called_once_with('a', 'b', info_inst)
        observer.reset_mock()
        
        info_inst = MockInfo()
        kb.append('a', 'c', info_inst)
        observer.assert_called_with('a', 'c', info_inst)
        observer.reset_mock()

        # Should NOT call it because it is NOT an Info instance        
        some_int = 3
        kb.raw_write('a', 'd', some_int)
        self.assertEqual(observer.call_count, 0)
Example #23
0
    def test_return_all_for_plugin(self):
        i1 = MockInfo()
        i2 = MockInfo()
        i3 = MockInfo()

        kb.append('a', 'b', i1)
        kb.append('a', 'b', i2)
        kb.append('a', 'b', i3)

        self.assertEqual(kb.get('a', 'b'), [i1, i2, i3])
Example #24
0
 def test_return_all_for_plugin(self):
     i1 = MockInfo()
     i2 = MockInfo()
     i3 = MockInfo()
     
     kb.append('a', 'b', i1)
     kb.append('a', 'b', i2)
     kb.append('a', 'b', i3)
     
     self.assertEqual(kb.get('a', 'b'), [i1, i2, i3])
Example #25
0
 def test_raw_read_error(self):
     kb.append('a', 'b', MockInfo())
     kb.append('a', 'b', MockInfo())
     self.assertRaises(RuntimeError, kb.raw_read,'a', 'b')
Example #26
0
 def test_raw_read_error(self):
     kb.append('a', 'b', MockInfo())
     kb.append('a', 'b', MockInfo())
     self.assertRaises(RuntimeError, kb.raw_read, 'a', 'b')
Example #27
0
    def test_get_by_uniq_id(self):
        i1 = MockInfo()
        kb.append('a', 'b', i1)

        i1_copy = kb.get_by_uniq_id(i1.get_uniq_id())
        self.assertEqual(i1_copy, i1)
Example #28
0
    def test_get_by_uniq_id(self):
        i1 = MockInfo()
        kb.append('a', 'b', i1)

        i1_copy = kb.get_by_uniq_id(i1.get_uniq_id())
        self.assertEqual(i1_copy, i1)