Example #1
0
def setup_test():
    """setup test"""

    # pylint: disable=invalid-name
    def create_test_tables(db):
        """create test tables"""
        db("""
        create table if not exists person (
            id int not null auto_increment,
            name      varchar(100),
            age       smallint,
            kids      smallint,
            salary    decimal(10,2),
            birthdate date,
            PRIMARY KEY (id)
            )
        """)

    def delete_test_tables(db):
        """drop test tables"""
        db('drop table if exists person')

    import MySQLdb
    from zoom.db import Database

    db = Database(MySQLdb.Connect,
                  host='database',
                  db='test',
                  user='******',
                  passwd='password')
    db.autocommit(1)
    delete_test_tables(db)
    create_test_tables(db)
    return db
Example #2
0
 def setUp(self):
     params = dict(
         host='database',
         user='******',
         passwd='password',
         db='test',
     )
     self.db = Database(MySQLdb.Connect, **params)
     self.db.autocommit(1)
     self.people = EntityStore(self.db, Person)
     self.joe_id = self.people.put(Person(name='Joe', age=50))
     self.sam_id = self.people.put(Person(name='Sam', age=25))
     self.people.put(Person(name='Ann', age=30))
Example #3
0
    def setUp(self):
        # setup the system and install our own test database
        system.setup(os.path.expanduser('~'))

        user.initialize('guest')
        user.groups = ['managers']
        params = dict(
            host='database',
            user='******',
            passwd='password',
            db='test',
        )
        self.db = Database(MySQLdb.Connect, **params)
        self.db.autocommit(1)
        system.db = self.db

        # create the test collection
        self.collection = Collection('People', person_fields, Person, url='/myapp')

        # so we can see our print statements
        self.save_stdout = sys.stdout
        sys.stdout = sys.stderr
Example #4
0
 def setUp(self):
     self.db = Database(MySQLdb.Connect,
                        host='database',
                        user='******',
                        passwd='password',
                        db='test')
Example #5
0
    def setUp(self):
        params = dict(
            host='database',
            user='******',
            passwd='password',
            db='test',
        )

        now = datetime.datetime(2016, 10, 11, 13, 12, 1)

        self.db = Database(MySQLdb.Connect, **params)
        self.db.autocommit(1)

        # Setup users table
        # -------------------------------------------------
        self.db("DROP TABLE IF EXISTS `dz_users`")
        self.db("""
            CREATE TABLE `dz_users` (
              `userid` int(5) NOT NULL auto_increment,
              `loginid` char(50) default NULL,
              `password` varchar(125) default NULL,
              `firstname` char(40) default NULL,
              `lastname` char(40) default NULL,
              `email` char(60) default NULL,
              `phone` char(30) default NULL,
              `fax` char(30) default NULL,
              `dtupd` datetime default NULL,
              `dtadd` datetime default NULL,
              `status` char(1) default NULL,
              PRIMARY KEY  (`userid`),
              UNIQUE KEY `userid` (`loginid`),
              KEY `userid_2` (`loginid`),
              KEY `email` (`email`)
            ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
        """)
        records = [
            ('admin', 'admin', 'Admin', 'User', 'A', now, now),
            ('manager1', 'pass1', 'Manager', 'One', 'A', now, now),
            ('user1', 'pass2', 'User', 'One', 'A', now, now),
            ('user2', 'pass3', 'User', 'Two', 'A', now, now),
        ]
        self.db.execute_many("""
            insert into dz_users
                (loginid, password, firstname, lastname, status, dtupd, dtadd)
                values 
                (%s, old_password(%s), %s, %s, %s, %s, %s)
        """, records)

        # Setup groups table
        # -------------------------------------------------
        self.db("DROP TABLE IF EXISTS `dz_groups`")
        self.db("""
                CREATE TABLE `dz_groups` (
                  `groupid` int(11) NOT NULL auto_increment,
                  `type` char(1) default NULL,
                  `name` char(20) default NULL,
                  `descr` char(60) default NULL,
                  `admin` char(20) default NULL,
                  PRIMARY KEY  (`groupid`),
                  UNIQUE KEY `name` (`name`),
                  KEY `name_2` (`name`)
               ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
        """)
        records = [
            (1, 'U','administrators','System Administrators','administrators'),
            (2, 'U','users','Registered Users','administrators'),
            (3, 'U','guests','Guests','administrators'),
            (4, 'U','everyone','All users including guests','administrators'),
            (5, 'U','managers','Site Content Managers','administrators'),
        ]
        self.db.execute_many("""
            insert into dz_groups values (%s, %s, %s, %s, %s)
        """, records)

        # Setup members table
        # -------------------------------------------------
        self.db("DROP TABLE IF EXISTS `dz_members`")
        self.db("""
                CREATE TABLE `dz_members` (
                  `userid` int(11) default NULL,
                  `groupid` int(11) default NULL,
                  UNIQUE KEY `contactid_2` (`userid`,`groupid`),
                  KEY `contactid` (`userid`),
                  KEY `groupid` (`groupid`)
               ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
        """)
        records = [
            # admins
            (1, 1),

            # users
            (1, 2),
            (2, 2),
            (3, 2),
            (4, 2),

            # managers
            (2, 5),
        ]
        self.db.execute_many("""
            insert into dz_members values (%s, %s)
        """, records)

        # Setup subgroups table
        # -------------------------------------------------
        self.db("DROP TABLE IF EXISTS `dz_subgroups`")
        self.db("""
                CREATE TABLE `dz_subgroups` (
                  `groupid` int(11) default NULL,
                  `subgroupid` int(11) default NULL,
                  UNIQUE KEY `groupid_2` (`groupid`,`subgroupid`),
                  KEY `groupid` (`groupid`),
                  KEY `subgroupid` (`subgroupid`)
               ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
        """)
        records = [
            # admin
            (2, 1), # admins are subgroup of users
            (5, 1), # admins are subgroup of managers

            # users 
            (4, 2), # users are subgroup of everyone

            # guests 
            (4, 3), # guests are subgroup of everyone

            # Managers
            (2, 5), # managers are subgroup of users
        ]
        self.db.execute_many("""
            insert into dz_subgroups values (%s, %s)
        """, records)

        # setup the system and install our own test database
        system.setup(os.path.expanduser('~'))
        system.db = self.db
        system.users = UserStore(self.db)   # for authenticate method
        system.database = LegacyDatabase(MySQLdb.Connect, **params) # used by user.update_user, called by authenticate method
        system.database.autocommit(1)

        print self.db('select * from dz_users')
        print self.db('select * from dz_groups')
        print self.db('select * from dz_subgroups')
        print self.db('select * from dz_members')