~ubuntu-branches/ubuntu/natty/landscape-client/natty-proposed

« back to all changes in this revision

Viewing changes to landscape/package/tests/test_store.py

  • Committer: Package Import Robot
  • Author(s): Andreas Hasenack
  • Date: 2012-06-19 15:12:07 UTC
  • mfrom: (1.2.11)
  • Revision ID: package-import@ubuntu.com-20120619151207-bxwshespd8onlavx
Tags: 12.05-0ubuntu0.11.04
* New upstream release 12.05 (r561 in trunk) (LP: #1004678).
* Make all subpackages that depend on each other require the exact same
  version, instead of >= $version.
* Added python-gi to client depends starting natty.
* Make change-packages also handle package holds (LP: #972489).
* Fix typo in glade file (LP: #983096).
* Tidy up apt facade (LP: #985493).
* Remove SmartFacade and its tests, no longer used (LP: #996269).
* Remove check for apt version, since we won't release this for
  Hardy where that check matters (LP: #996837).
* Remove methods that were smart specific. We no longer use smart
  (LP: #996841).
* Remove smart-update helper binary. We no longer use smart
  (LP: #997408).
* Remove test-mixins that were useful only during the apt-to-smart
  code migration. Now with smart gone, they are no longer necessary
  (LP: #997760).
* Build the packages from precise onward, not just precise.
* Assorted packaging fixes:
  - Switched to format 3.0 (quilt).
  - Added source lintian overrides, with comments.
  - Updated debian/rules:
    - Added build-arch and build-indep dummy target.
    - Build the GUI packages from precise onwards, and not just on precise.
    - Re-enable dh_lintian.
    - Strip the binaries (dh_strip), and also call dh_shlibdeps for the
      automatic shlibs dependency.
    - Added python-gi from natty onwards.
  - Used __Choices instead of _Choices in landscape-common.templates, it's
    better for translators.
  - Updated standard version to 3.8.2, the version from Lucid (oldest one
    we support)
  - Added shlibs depends.
  - Dropped deprecated ${Source-Version} and replaced it with
    ${binary:Version}
  - Require exact version of the sibling package instead of >=.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
1
import threading
2
2
import time
3
 
import sys
4
3
 
5
4
import sqlite3
6
5
from landscape.tests.helpers import LandscapeTest
356
355
 
357
356
        database = sqlite3.connect(filename)
358
357
        cursor = database.cursor()
359
 
        for table in ["package_locks", "locked"]:
360
 
            query = "pragma table_info(%s)" % table
361
 
            cursor.execute(query)
362
 
            result = cursor.fetchall()
363
 
            self.assertTrue(len(result) > 0)
 
358
        cursor.execute("pragma table_info(locked)")
 
359
        result = cursor.fetchall()
 
360
        self.assertTrue(len(result) > 0)
364
361
 
365
362
    def test_add_and_get_locked(self):
366
363
        """
401
398
        self.store1.clear_locked()
402
399
        self.assertEqual(self.store2.get_locked(), [])
403
400
 
404
 
    def test_get_package_locks_with_no_lock(self):
405
 
        """
406
 
        L{PackageStore.get_package_locks} returns an empty list if no package
407
 
        locks are stored.
408
 
        """
409
 
        self.assertEqual(self.store1.get_package_locks(), [])
410
 
 
411
 
    def test_add_package_locks(self):
412
 
        """
413
 
        L{PackageStore.add_package_locks} adds a package lock to the store.
414
 
        """
415
 
        self.store1.add_package_locks([("name", "", "")])
416
 
        self.assertEqual(self.store2.get_package_locks(),
417
 
                         [("name", "", "")])
418
 
 
419
 
    def test_add_package_locks_idempotence(self):
420
 
        """
421
 
        The operation of adding a lock is idempotent.
422
 
        """
423
 
        self.store1.add_package_locks([("name", "", "")])
424
 
        self.store1.add_package_locks([("name", "", "")])
425
 
        self.assertEqual(self.store2.get_package_locks(),
426
 
                         [("name", "", "")])
427
 
 
428
 
    def test_add_package_locks_with_none(self):
429
 
        """
430
 
        If None, package locks relation and version values are automatically
431
 
        converted to empty strings.
432
 
        """
433
 
        self.store1.add_package_locks([("name", None, None)])
434
 
        self.assertEqual(self.store2.get_package_locks(),
435
 
                         [("name", "", "")])
436
 
 
437
 
    def test_add_package_locks_multiple_times(self):
438
 
        """
439
 
        L{PackageStore.add_package_locks} can be called multiple times and
440
 
        with multiple locks each time.
441
 
        """
442
 
        self.store1.add_package_locks([("name1", "", "")])
443
 
        self.store1.add_package_locks([("name2", "<", "0.2"),
444
 
                                       ("name3", "", "")])
445
 
        self.assertEqual(sorted(self.store2.get_package_locks()),
446
 
                         sorted([("name1", "", ""),
447
 
                                 ("name2", "<", "0.2"),
448
 
                                 ("name3", "", "")]))
449
 
 
450
 
    def test_add_package_locks_without_name(self):
451
 
        """
452
 
        It's not possible to add a package lock without a name.
453
 
        """
454
 
        if sys.version_info >= (2, 5):
455
 
            sqlite_error = sqlite3.IntegrityError
456
 
        else:
457
 
            sqlite_error = sqlite3.OperationalError
458
 
        self.assertRaises(sqlite_error,
459
 
                          self.store1.add_package_locks,
460
 
                          [(None, None, None)])
461
 
 
462
 
    def test_remove_package_locks(self):
463
 
        """
464
 
        L{PackageStore.remove_package_locks} removes a package lock from
465
 
        the store.
466
 
        """
467
 
        self.store1.add_package_locks([("name1", "", "")])
468
 
        self.store1.remove_package_locks([("name1", "", "")])
469
 
        self.assertEqual(self.store2.get_package_locks(), [])
470
 
 
471
 
    def test_remove_package_locks_multiple_times(self):
472
 
        """
473
 
        L{PackageStore.remove_package_locks} can be called multiple times and
474
 
        with multiple locks each time.
475
 
        """
476
 
        self.store1.add_package_locks([("name1", "", ""),
477
 
                                       ("name2", "<", "0.2"),
478
 
                                       ("name3", "", "")])
479
 
        self.store1.remove_package_locks([("name1", "", "")])
480
 
        self.store1.remove_package_locks([("name2", "<", "0.2"),
481
 
                                          ("name3", "", "")])
482
 
        self.assertEqual(self.store2.get_package_locks(), [])
483
 
 
484
 
    def test_remove_package_locks_without_matching_lock(self):
485
 
        """
486
 
        It's fine to remove a non-existent lock.
487
 
        """
488
 
        self.store1.remove_package_locks([("name", "", "")])
489
 
        self.assertEqual(self.store2.get_package_locks(), [])
490
 
 
491
 
    def test_clear_package_locks(self):
492
 
        """
493
 
        L{PackageStore.clear_package_locks} removes all package locks
494
 
        from the store.
495
 
        """
496
 
        self.store1.add_package_locks([("name1", "", ""),
497
 
                                       ("name2", "<", "0.2")])
498
 
        self.store1.clear_package_locks()
499
 
        self.assertEqual(self.store2.get_package_locks(), [])
500
 
 
501
401
    def test_add_hash_id_request(self):
502
402
        hashes = ("ha\x00sh1", "ha\x00sh2")
503
403
        request1 = self.store1.add_hash_id_request(hashes)