Home | History | Annotate | Download | only in tests
      1 #!/usr/bin/env python3
      2 #
      3 #   Copyright 2016 - The Android Open Source Project
      4 #
      5 #   Licensed under the Apache License, Version 2.0 (the "License");
      6 #   you may not use this file except in compliance with the License.
      7 #   You may obtain a copy of the License at
      8 #
      9 #       http://www.apache.org/licenses/LICENSE-2.0
     10 #
     11 #   Unless required by applicable law or agreed to in writing, software
     12 #   distributed under the License is distributed on an "AS IS" BASIS,
     13 #   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     14 #   See the License for the specific language governing permissions and
     15 #   limitations under the License.
     16 
     17 # This is a mock third-party controller module used for unit testing ACTS.
     18 
     19 import logging
     20 
     21 ACTS_CONTROLLER_CONFIG_NAME = "MagicDevice"
     22 
     23 
     24 def create(configs):
     25     objs = []
     26     for c in configs:
     27         if isinstance(c, dict):
     28             c.pop("serial")
     29         objs.append(MagicDevice(c))
     30     return objs
     31 
     32 
     33 def destroy(objs):
     34     print("Destroying magic")
     35 
     36 
     37 def get_info(objs):
     38     infos = []
     39     for obj in objs:
     40         infos.append(obj.who_am_i())
     41     return infos
     42 
     43 
     44 class MagicDevice(object):
     45     def __init__(self, config):
     46         self.magic = config
     47 
     48     def get_magic(self):
     49         logging.info("My magic is %s.", self.magic)
     50         return self.magic
     51 
     52     def who_am_i(self):
     53         return {"MyMagic": self.magic}
     54