def login(self):
        if not hasattr(self, 'username'):
            self.username = 'fred'
        if not hasattr(self, 'password'):
            self.password = 'bob'
        if not User.objects.filter(username=self.username).exists():
            User.objects.create_user(self.username, password=self.password)
        self.user = User.objects.get(username=self.username)
        logged_in = self.client.login(username=self.username,
                                      password=self.password)
        if not logged_in:
            self.fail("LOGIN failed")
Represent 3 dimensions in a HeatMap chart using x, y, and values.
dataset/ETHPy150Open rapidsms/rapidsms/rapidsms/tests/harness/base.py/LoginMixin.login--crossover with--dataset/ETHPy150Open bokeh/bokeh/bokeh/charts/builders/heatmap_builder.py/HeatMap